Мобильная разработка #1
3.98K subscribers
798 photos
85 videos
32 files
1.26K links
Всё о создании приложений под Android и iOS в одном месте.

🔹 Инструменты, библиотеки и ресурсы для ускорения работы.
🔹 Статьи и гайды для разработчиков любого уровня.
🔹 Тренды мобильной разработки и новости индустрии.

Реклама @evgenycarter
Download Telegram
Как мы в QIWI внедряли Kotlin Multiplatform Mobile (KMM)


КММ — это технология кроссплатформенной разработки, позволяющая писать общий код под основные платформы за исключением UI-слоя. Все продукты со временем накапливают очень большой технологический контекст; КММ, в свою очередь, позволяет его облегчить, делая компоненты технологического стека общими для команд и платформ. Такие технологии дают неоспоримые преимущества — возможность использовать ресурс каждого разработчика при создании новых фич, единый набор тестов, улучшение инженерных практик в командах и прочее.

Подробнее
👍1
Activity: Жизненный цикл

Жизненный цикл активити состоит из шести основных коллбэков, вызываемых системой. В порядке вызова: onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy().


onCreate() вызывается когда активити создается. В onCreate() вы должны вызвать метод setContentView().

onStart() вызывается когда активити отрисована и видима пользователю.

onResume() вызывается перед тем как активити станет доступна для взаимодействия с пользователем.

onPause() – метод симметричный onResume(). Пользователь больше не может взаимодействовать с активити, но активити частично видна пользователю. В этом состоянии UI активити может изменяться.

onStop() – метод симметричный onStart(). Вызывается, когда активити больше не видна пользователю.

onDestroy() – метод симметричный onCreate(). Вызывается перед тем, как активити будет уничтожена системой.


Несколько примеров:

1. Пользователь жмет Home. В этом случае активити больше не видна, поэтому вызываются onPause(), onStop(). Пользователь открывает приложение снова - onStart(), onResume().

2. Пользователь переходит на другую активити внутри приложения (реализуется вызовом startActivity()) – onPause(), onStop(). Пользователь возвращается на предыдущую активити – onStart(), onResume().

3. Вызов finish()onPause(), onStop(), onDestroy(). Когда пользователь перейдет на эту активити снова, она будет создана с нуля без сохранения состояния.

4. Пользователь поворачивает телефон и ориентация активити меняется. Активити пересоздается и вызываются коллбеки onPause(), onStop(), onDestroy(), onCreate(), onStart(), onResume() с сохранением состояния.

Это базовые методы активити. Более подробно они описаны в документации.

В полный жизненный цикл также входят onRestart(), onSaveInstanceState(), onRestoreInstanceState(), onNewIntent() и другие методы, которые разберем в будущем.


#android
👍4
Делаем загрузку с камеры для Android быстрее и надежнее

https://dropbox.tech/mobile/making-camera-uploads-for-android-faster-and-more-reliable
👍2
Activity: Как пережить поворот экрана?

При повороте экрана активити уничтожается и создается заново. Вызываются коллбэки onPause(), onStop(), onSaveInstanceState(), onDestroy()onCreate(), onStart(), onRestoreInstanceState(), onResume().

Чтобы сохранить состояние активити, вы должны переопределить метод onSaveInstanceState() и положить данные в Bundle.

При реинициализации активити, Bundle с сохраненным состоянием передается в onCreate() и в onRestoreInstanceState().

Система вызывает onSaveInstanceState() и onRestoreInstanceState() только в том случае, когда необходимо сохранить состояние, например при повороте экрана или при убийстве активити для освобождения памяти. Данные коллбэки не вызываются, если пользователь выходит из активити нажав Back или если активити убивается вызовом finish().

onSaveInstanceState() вызывается после onStop() на версии API ≥ 28. На API < 28 этот коллбэк вызывается перед onStop() и нет гарантий до или после onPause().

onRestoreInstanceState() вызывается после onStart().
👍3
Разработка простого iOS-приложения на SwiftUI в соответствии с принципами чистой архитектуры.

Использование чистой архитектуры позволяет разрабатывать приложения с очень низкой связью и независимо от деталей технической реализации, таких как базы данных и фреймворки. Таким образом, приложение становится простым в обслуживании и гибким для изменений. Кроме того, оно становится внутренне тестируемым. Здесь я покажу, как я структурирую свои проекты с чистой архитектурой. На этот раз мы собираемся создать приложение для iOS с использованием SwiftUI. Мы проиллюстрируем только один вариант использования - вывод списка дел, полученных из API. Давайте начнем.

https://paulallies.medium.com/clean-architecture-in-the-flavour-of-swiftui-5-5-8430786a83
👍3
Как записывать и воспроизводить http-трафик в приложениях для Android и iOS

С 2022 года я присоединился к небольшому, но амбициозному стартапу (mobile .dev), целью которого является создание столь необходимой инфраструктуры для мобильной разработки.
Мы анализируем приложения и проводим сравнительные тесты производительности для выявления проблем до начала производства, а в некоторых случаях нам требуются инструментальные тесты с подражанием сети.
Моя первая задача? Выяснить, можем ли мы сами поиздеваться над сетью, чтобы облегчить использование нашего продукта. Создавать и поддерживать инструментальные тесты с имитацией сети всегда непросто - поэтому мы хотели взять эту ответственность на себя.

https://itnext.io/how-to-record-replay-http-traffic-in-android-and-ios-apps-db24a5dcc0e
1
Android_Apprentice_Third_Edition_Beginning_Android_Development_with.pdf
72.9 MB
Android Apprentice (2020)
Авторы: Darryl Bayliss, Tom Blankenship, Fuad Kamal, Namrata Bandekar

Изучение программирования под Android может быть сложной задачей, особенно если у вас нет опыта программирования. Конечно, документации предостаточно, но инструменты и библиотеки, доступные сегодня, не так просто поддаются изучению. В данной книге используется особый подход: авторы учат программированию, переходя от простого к сложному, начиная с создания простого первого приложения и заканчивая полнофункциональным проигрывателем подкастов.

В книге рассматриваются следующие темы:
✔️Установка IDE;
✔️Макеты;
✔️Дебаггинг;
✔️Интеграция с API Google;
✔️Работа с интернетом;
✔️И многие другие.
👍4
Нужно ли думать о сохранении состояния, если приложение поддерживает только портретную ориентацию?

– Да.

Поворот экрана – это частный случай Configuration Changes. Другой пример – изменение языка системы.

Кроме того, как было упомянуто постом выше, система может уничтожить активити, чтобы использовать занятые ей ресурсы. В этом случае состояние сохраняется и восстанавливается при пересоздании активити.

#State
Android - 9 полезных операторов Kotlin Flow, которые необходимо знать

https://blog.canopas.com/android-9-useful-kotlin-flow-operators-you-need-to-know-b9daef4b630f

#Android #Kotlin
Fragment

Fragment используется для отображения части UI на экране. Фрагмент создается внутри активити или внутри другого фрагмента.

Для создания и управления фрагментами используется FragmentManager.

Класс-наследник класса Fragment должен иметь дефолтный конструктор без параметров. Система использует этот конструктор при пересоздании фрагмента.

Начиная с API v28 системный класс Fragment – deprecated. Рекомендуется использовать Fragment из Support Library.

#Fragment
Стоит ли изучать Swift? Как меняются правила IT сферы в новых условиях?

Обсудим на бесплатном вебинаре от SwiftBook, а также расскажем какие навыки нужны, чтобы освоить профессию iOS-разработчика.

Регистрируйся и получи в подарок:
книгу «The Swift Programming Language» от Apple на русском
экипировку iOS-разработчика

Ждём тебя! Ссылка на регистрацию ➤ здесь
👍1
50 вопросов и ответов для собеседования по Swift в 2022 году

Перед вами список из 50 вопросов и ответов для собеседования по Swift. Эти вопросы посвящены программированию на Swift и разработке приложений для iOS. Вы должны знать ответы на них, прежде чем у вас появится шанс продемонстрировать свои навыки перед интервьюером.

Кроме того, не стесняйтесь использовать эти вопросы для собеседования по Swift для тренировки перед экзаменом.

Эти вопросы для собеседования расположены в случайном порядке, а не от простого к сложному.
👍3
Weekend Offer для мобильных разработчиков пройдет уже 23–24 апреля

Получите оффер в команду VK Teams всего за одни выходные, а ещё – дополнительную зарплату на старте.

Команда поставляет мессенджер VK Teams on-premise на серверах для крупных компаний, а также предоставляет SaaS-решение для среднего и малого бизнеса.

Смотрите видеоприглашение и регистрируйтесь на сайте до 22 апреля, с вами свяжутся и введут в курс дела. Удачи!
Подборка каналов для IT специалистов 🎯


Вакансии 📌
https://t.me/progjob Вакансии для программистов

Системное администрирование 📌
https://t.me/i_DevOps Все для DevOps
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов

Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика

Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка

Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков

Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика

Разработка игр 📌
https://t.me/game_devv GameDev: разработка игр

Программирование, Биг дата, книги 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/coddy_academy Академия кода

Шутки программистов 📌
https://t.me/itumor ITumor | программисты шутят

Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности

Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров

Английский 📌
https://t.me/UchuEnglish Английский с нуля

Математика 📌
https://t.me/Pomatematike Канал по математике

Арбитраж трафика 📌
https://t.me/partnerochkin CPA и арбитраж трафика

Крипта 📌
https://t.me/bitkoinoff Новости криптовалют
👍3
Разработка для встроенных систем с использованием Swift
В последние годы встроенная разработка становится все сложнее из-за быстрого развития оборудования. Вся отрасль остро нуждается в каких-то новых способах улучшить ситуацию. Но все равно результата нет. И Swift действительно подходит для такого случая использования.

https://apptractor.ru/info/articles/razrabotka-dlya-vstroennyh-sistem-s-ispolzovaniem-swift.html
👍1
Самоучитель по архитектуре MVI для Android

Узнайте об архитектурном паттерне MVI (Model-View-Intent) и приготовьтесь применить его в своем следующем приложении для Android.

Разработчики могут выбрать один из нескольких архитектурных паттернов для создания масштабируемых и поддерживаемых приложений, таких как MVC, MVP и MVVM. В этом учебнике вы узнаете о совершенно другом архитектурном паттерне.

Мы рассмотрим:
Что такое MVI и как он работает.

Слои архитектурного паттерна MVI.
Как работает однонаправленный поток в приложении Android.
Как MVI улучшает тестируемость вашего приложения, предоставляя предсказуемые и тестируемые состояния.
Преимущества и недостатки использования MVI по сравнению с другими архитектурными паттернами.

https://www.raywenderlich.com/817602-mvi-architecture-for-android-tutorial-getting-started
👍2
Становимся мастером iOS-симулятора

Расширьте свои навыки с помощью симулятора iOS, который сделает вас более продуктивным. Подробнее.

#ios
👍2
Многопользовательская игра для рисования на Compose

https://github.com/getStream/stream-draw-android
👍1
OAuth в мобильных приложениях
Ни один сервис не обходится без логина. Часто в мобильных приложениях требуется интегрировать вход через сторонние соцсети — например, зайти через Google или VK. А при обучении мобильной разработке используются открытые API, где для авторизации используется OAuth.

Поэтому разработчикам мобильных приложений приходится работать с OAuth. В сети по этой теме есть разные материалы.

В этой статье я попробую структурированно закрыть нюансы OAuth в мобильных приложениях: на какие моменты стоит обратить внимание, какие способы реализации выбрать. А также поделюсь опытом настройки OAuth в Android-приложении с использованием библиотеки AppAuth.
👍3