Install aws cloudwatch agent on-premise ubuntu

1. install aws cloudwatch agent

wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb
sudo dpkg -i -E ./amazon-cloudwatch-agent.deb

2. install aws cli

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
apt install unzip
unzip awscliv2.zip
sudo ./aws/install

3. configure

sudo aws configure --profile AmazonCloudWatchAgent

4. Launch agent

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m onPremise -s -c ssm:<<name>>

Полезные ссылки

Оптимизация
https://www.fadel.io/blog/posts/ios-performance-tips-you-probably-didnt-know/

Тулзы
https://xcodebuildsettings.com

ASO
https://vc.ru/marketing/103566-kak-uvelichit-konversiyu-v-ustanovki-pri-pomoshchi-eksperimentov-v-storah

Обучение
https://www.pointfree.co

Статьи

Project LightSpeed: Rewriting the Messenger codebase for a faster, smaller, and simpler messaging app

AutomaticSize


- (UICollectionViewLayoutAttributes *)preferredLayoutAttributesFittingAttributes:(UICollectionViewLayoutAttributes *)layoutAttributes {
[self setNeedsLayout];
[self layoutIfNeeded];

CGSize size = [self systemLayoutSizeFittingSize:layoutAttributes.frame.size];
CGRect frame = layoutAttributes.frame;
frame.size.width = size.width;
layoutAttributes.frame = frame;

return layoutAttributes;
}

UITableView separator inset


- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{

    if (uslovie1) // удаляет inset, делает от начала до конца
    {
        // Remove seperator inset
        if ([cell respondsToSelector:@selector(setSeparatorInset:)])
        {
            [cell setSeparatorInset:UIEdgeInsetsZero];
        }

        // Prevent the cell from inheriting the Table View's margin settings
        if ([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)])
        {
            [cell setPreservesSuperviewLayoutMargins:NO];
        }

        // Explictly set your cell's layout margins
        if ([cell respondsToSelector:@selector(setLayoutMargins:)])
        {
            [cell setLayoutMargins:UIEdgeInsetsZero];
        }
    }

    if (uslovie2) // прячет separator
    {
       cell.separatorInset = UIEdgeInsetsMake(0.f, cell.bounds.size.width, 0.f, 0.f);
    }
}