Android | Михаил Белый
310 subscribers
272 photos
32 videos
127 links
Авторская песочница о карьере в IT в роли Mobile Dev (Android, Kotlin, Multiplatform) и разных вещах, которые мне интересны.

Посты каждый день в 5 вечера.

Автор: @michaelbel

Забустить: t.me/boost/foundout

Задонатить: boosty.to/michaelbel
Download Telegram
🐗 Установить KMP-приложение на айфон

Как протестировать iOS-приложение на реальном устройстве? С эмуляторами все понятно – если он установлен, то запустится прямо из Android Studio. Главное следить чтобы версия iOS на эмуляторе совпадала с Execution target в конфигурации сборки. Че делать, если нет аккаунта разработчика Apple, но есть айфон?

🐗 В KMP-проекте добавить поддержку таргета iosArm64.

🐗 Открыть iOS-модуль в Xcode, перейти SettingsAccounts и войти в свой Apple ID. Там же в разделе Team
выбрать свой аккаунт (Personal Team).

🐗 Подключить айфон к маку через кабель.

🐗 На айфоне включить режим разработчика SettingsPrivacy & SecurityDeveloper Mode🐗 (перезагрузится).

🐗 Теперь в Xcode можно выбрать свое устройство вместо эмулятора и собрать приложение.

🐗 На айфон установится сертификат. Его нужно включить: SettingsGeneralVPN & Device ManagementDeveloper App → нажать Trust.

🐗 Готово. Можно тестировать апп (кроме пушей и платежей).

🐗 В дальнейшем можно собирать iOS-таргет прямо из Android Studio, подключив айфон к маку.
Please open Telegram to view this post
VIEW IN TELEGRAM
732111
Иконка запуска

Если minSdk в твоем проекте перешагнул уровень 26 – поздравляю! Меньше страданий, больше порядка. Пора немного прибраться. Старые форматы .webp или .png больше не нужны, смело удаляем. Файл ic_laucher_round.xml и папки mipmap тоже можно снести.

Современная иконка приложения – это адаптивный вектор из двух слоев:
• background – фон 108x108 с какой-нибудь заливкой.
• foreground – сама иконка, размером от 48x48 до 66x66, вписанная в квадрат 108x108. Если иконка цветная, добавляем ещё и монохромную версию.

Форма больше не наша забота. Android сам делает иконки круглыми, квадратными или скруглёнными. От нас требуется только прописать ic_launcher в манифесте в полях icon и roundIcon.
831111
🎁 Под ёлочкой

Распаковал подарки, которые буду читать на каникулах.

Питер Абрахамс – Анатомия человека
Узнал про нее из треда Назима Гафарова, в котором собираются книги для восстановления цивилизации после ядерной войны. Как разводить пчёл и кроликов мне не интересно, а вот как работают наши тела очень даже.

Мартин Клеппман – Высоконагруженные приложения
Первая книга про харды у меня дома. Мне просто нравятся кабанчики.

Максим Ильяхов – Ясно, понятно
Когда-то проникся Пиши, сокращай Ильяхова. Теперь как истинный сектант читаю все его новые книги.
Please open Telegram to view this post
VIEW IN TELEGRAM
7311
🐗 Четыре месяца решаю литкод

За декабрь решены 32 задачи уровня изи. Всего 127. Осталось каких-то 3 279 задач. Пал в рейтинге на 864 357 место.

5 декабря количество решенных задач перевалило за сотку. 10 декабря стик дней достиг сотки и мне выдали второй почетный бейдж 100 Days Badge 2024. Я думал слутать третий (250 дней) уже в апреле, но судя по всему их выдают каждый год и 1 января прогресс поделится на ноль.

Find Mode in Binary Search Tree
Base 7
Relative Ranks
Perfect Number
Fibonacci Number
Detect Capital
Longest Uncommon Subsequence I
Minimum Absolute Difference in BST
Reverse String II
Diameter of Binary Tree
Student Attendance Record I
Reverse Words in a String III
Maximum Depth of N-ary Tree
Array Partition
Binary Tree Tilt
Subtree of Another Tree
Distribute Candies
N-ary Tree Preorder Traversal
N-ary Tree Postorder Traversal
Longest Harmonious Subsequence
Minimum Index Sum of Two Lists
Can Place Flowers
Merge Two Binary Trees
Maximum Product of Three Numbers
Average of Levels in Binary Tree
Maximum Average Subarray I
Set Mismatch
Two Sum IV - Input is a BST
Robot Return to Origin
Second Minimum Node in a Binary Tree
Longest Continuous Increasing Subsequence
Baseball Game

#leetcode@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
941
Для волчар стала доступна запись моего собеса на валютную удаленочку (зп в сомах). Оффер зажали. Про рабочую культуру компании отзывались в чате Увольнения. Также это мой рекорд по количеству вопросов – почти 100.
152211
🐗 Подтверждение навыка Git

В резюме на hh можно указывать навыки и устанавливать для них уровни владения (базовый, средний, продвинутый). Некоторые навыки можно подтверждать, проходя тесты.

Например, для навыка Git доступно 3 теста:
• Базовый – 10 вопросов за 10 минут.
• Средний – 12 вопросов за 15 минут.
• Продвинутый – 15 вопросов за 20 минут.

На каждый вопрос – 5 вариантов ответа, из которых 1 правильный. Копирование запрещено. Если завалить – результат никто не увидит, а следующая попытка будет через месяц. Если сдать – на год выдадут зеленый шильдик. Это сделает резюме более привлекательным для работодателей. Задумано, что нужно тестироваться на тот уровень, который указан у навыка. И снижать его, если не прошел.

Нет смысла учиться-разбираться, в самих тестах отборная дичь, особенно в третьем. Быстрее будет проставить у всех навыков «Продвинутый» уровень и протыкать правильные ответы. Я собрал их все вместе с вопросами в роадмапе.

#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1852
Имя артефакта

Приближается релиз Gradle 9.0, в котором удалят много устаревшего API. Одно из таких изменений – способ задания имени артефактов. Это нужно чтобы генерируемый APK назывался не app.apk, а более осмысленно. Например, содержал номер версии и сборки в названии.

Ранее имя артефакта задавалось в разделе android с помощью archivesBaseName. Теперь переехало в отдельный раздел base и называется archivesName.
842
🐗 Подтверждение навыка Java

Java – один из важнейших навыков для Android-разработчиков. От неё не сбежать: у Kotlin нет собственной виртуальной машины. Этот навык тоже можно подтвердить на hh.

Предлагается 3 уровня тестов. Каждый включает в себя теорию и практику. Если хочется, можно сдать только теорию.

• Базовый
Теория – 10 вопросов за 10 минут.
Практика – 3 задачи за 25 минут.

• Средний
Теория – 12 вопросов за 15 минут.
Практика – 4 задачи за 35 минут.

• Продвинутый
Теория – 13 вопросов за 20 минут.
Практика – 5 задач за 50 минут.

По теории все аналогично Git. Вопрос и 5 вариантов ответа. Они каждый раз идут в рандомном порядке. Нужно набрать большинство правильных ответов. То есть можно и ошибиться. Зеленый шильдик выдадут на год.

С практикой интереснее. Задачи содержат описание, формат ввода и вывода, примеры результатов. Решение нужно накатать на месте в редакторе кода с подсветкой синтаксиса и автодополнением. Запустить, проверить и отправить на аппрув. Не забудь про импорты и точку с запятой в конце строк. Перед тем как идти в бой, hh дает возможность потренироваться на полигоне. Там будет идентичная задача, можно заранее посмотреть формат. Также hh бдит и пугает, что гулять по другим вкладкам браузера нельзя. И что решение будет проверяться не только на тестовых кейсах, но и на скрытых – по ним будет рассчитан результат. Зеленый шильдик выдадут на 3 года.

Чтобы не поймали за жопу рекомендую потратить все время таймера. Будет подозрительно решить 5 задач за 5 минут, а не за 50. Если хочется пальчики размять – вручную перепиши код в редактор, тогда точно засчитают.

ОТВЕТЫ В РОАДМАПЕ

#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
282211
🐗 Верификация аккаунта Google Play

В 2017 году занес гуглу $25 и купил аккаунт разработчика Google Play. Выкладывал туда свои поделки, приложения, библиотеки. Почти всё гугл снес из-за своих постоянно меняющихся правил. Обучение идет веселее, когда творишь не в стол, а на всеобщее обозрение. Я освоил автоматическую публикацию, поэтапную раскатку, правила разных регионов, монетизацию с помощью рекламных баннеров. $100 (минимальная сумма вывода) накапать не успело и я забил.

В 2023 году владельцы аккаунтов начали получать письма счастья – подтверди аккаунт, чтобы он соответствовал обновленной политике требований Play Console или он будет удален вместе со всеми приложениями. Если зарабатываешь деньги – подтверди еще и платежные реквизиты. По интернету начали расходиться нехорошие новости, что подтверждение из РФ не работает, а смски не доходят. Было разрешено выбрать дедлайн проверки и я отложил проблему на далекий 2025 год.

В ноябре 2024 письма возобновились, а уже в январе, за неделю до дедлайна я решил начать шевелиться и узнать чего от меня хотят:
• адрес электронной почты, по которому пользователи Google Play смогут связаться с вами.
• контактный номер телефона и адрес электронной почты, по которым Google сможет связаться с вами.
• официальный документ, удостоверяющий вашу личность.

Подтвердить данные оказалось легко:
1. Выбрать персональный аккаунт (не организация).
2. Платежный профиль – это любая привязанная карта, даже мертвая. Важен адрес, который там указывался. В моем случае – адрес регистрации как в паспорте. Если профиля нет – можно создать новый.
3. В контактную инфу указал почту яндекса – ввел код из письма.
4. В контактный телефон – номер РФ с +7. Сразу получил код подтверждения.

После этих манипуляций на почту падает новое письмо – фейс к осмотру. Требуют любой документ, удостоверяющий личность. На этом этапе меня разворачивали 3 раза. Каждая новая проверка длилась полтора дня. Сначала я загрузил ч/б скан паспорта РФ – нельзя. Затем загрузил цветную фотку страницы с адресом – нельзя, нужна страница с фоткой. Потом загрузил страницу с фоткой – не совпадает адрес. Только когда указал номер дома, учетную запись верифицировали.

Надеюсь, больше никаких писем.
Please open Telegram to view this post
VIEW IN TELEGRAM
8431
🐗 Подтверждение навыка SQL

В Android-разработке приходится работать с базами данных (Room, SQLite), хранить данные приложения, пользовательские настройки, кэш или историю действий. SQL-запросы используются для создания таблиц, вставки, обновления, удаления и выборки данных. Поэтому этот навык тоже можно подтвердить.

Доступно 3 теста:
• Базовый – 10 вопросов за 15 минут.
• Средний – 12 вопросов за 20 минут.
• Продвинутый – 15 вопросов за 25 минут.

Вопросы по основным аспектам работы с SQL: синтаксис команд (создание, изменение и удаление таблиц), выполнение запросов на выборку данных с использованием операторов SELECT, WHERE, GROUP BY, HAVING, ORDER BY, а также основы соединения таблиц (JOIN). Извлечение нужных данных из базы, работа с агрегатными функциями (COUNT, SUM, AVG, MIN, MAX) и фильтрацией данных.

ОТВЕТЫ В РОАДМАПЕ

#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
8322
🐗 Подтверждение навыка ООП

ООП – набор принципов, упрощающих разработку и переиспользование кода. Обычно речь про инкапсуляцию, полиморфизм и наследование. Иногда рядом трется абстракция. В Android применяются для обеспечения модульности и гибкости.

Доступно 3 теста:
• Базовый – 10 вопросов за 10 минут.
• Средний – 12 вопросов за 15 минут.
• Продвинутый – 15 вопросов за 20 минут.

Тесты проверяют знание SOLID, модификаторов доступа, классов и интерфейсов. Также оценивается понимание паттернов проектирования, статических методов, абстрактных классов и интерфейсов. Проверяется умение строить код с низкой связанностью, модульностью и соблюдением принципов единой ответственности.

ОТВЕТЫ В РОАДМАПЕ

#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
6111111