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

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

Реклама @evgenycarter
Download Telegram
Вряд ли вы разрабатываете приложения для watchOS, и еще более вряд ли делаете complications (это такие мини-виджеты на циферблатах). Но если вдруг вы с ними столкнетесь, то быстро поймете, что реализовать пиксель-перфект дизайн для циферблатов разного размера – не тривиальная задача.

http://www.glimsoft.com/02/18/watchos-complications/
Jetpack Compose под капотом: Рекомпозиция и Стабильные типы

В этой статье речь пойдет о рекомпозиции и тонкостях ее работы. Понимание принципов рекомпозиции даст вам значительное преимущество при работе с Jetpack Compose.

Подробнее

#android
5 практических советов по оптимизации UI на Jetpack Compose

Зачастую, создавая очередную Composable функцию, разработчику не приходится задумываться над тем, как Compose работает под капотом, и это прекрасно. Однако у этого есть и обратная сторона — декларативность ухудшает прозрачность и понимание происходящего, некоторые вещи начинают казаться “магией”. Если что-то пойдет не так, это сыграет злую шутку.
Проблемы с производительностью — часть того, с чем можно столкнуться. Об этом и пойдет речь в данной статье.

Подробнее

#android
Как варить дизайн-систему для живого приложения (Кошелёк)

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


https://www.youtube.com/watch?v=329aAWL9lXo
👋 Мы — команда айтишников. В текущих условиях компания не может работать как работала, и мы решили переехать всей командой.

💬 Создали канал для таких же, как мы, — тех, кто хочет уехать. Собираем всё самое полезное про релокацию. Рассказываем, с чем столкнулись сами, ищем лайфхаки и способы похачить систему (например, нашли несколько способов, как жить за границей на рубли).

👨‍💻 А вообще, мы HR-IT-чувачки (то есть без лишней скромности профи в сфере трудоустройства) и сейчас готовим новый проект: будем помогать айтишникам организовать переезд и устроиться на работу в валюте. И ещё сверху грант будем давать💰

👉 Что для этого нужно? Пока что — присоединиться к каналу RelocationDev и следить за новостями😉 Скоро обо всём расскажем — в мельчайших подробностях.
👎2
Android: Из каких базовых компонент состоит приложение?

Базовые компоненты андроид приложения: Activity, Service, BroadcastReceiver, ContentProvider. Каждый из базовых компонент объявляется в андроид манифесте и может являться точкой входа в приложение.

Activity представляет UI и функциональность, видимые пользователю.

Service используется для исполнения долгих операций, которые не требуют взаимодействия с пользователем.

BroadcastReceiver принимает и обрабатывает броадкаст ивенты, отправленные внутри приложения или из других приложений.

ContentProvider используется для обмена данными с другими приложениями.

Каждый из компонентов подробнее рассмотрим в будущем.

#Components
👍9
Сейчас одновременно много разработчиков ищут новую работу. Конкуренция и борьба за позиции вырастает. Поэтому стоит уделять больше внимания подготовке к техническим собеседованиям.

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

Советуем попробовать! Если остались вопросы, заходите на сайт.
Как писать плагины Gradle - ответы на распространенные вопросы и альтернативные решения реализации.

В мире Android существует довольно плохо освещённая тема — написание плагинов к Gradle.

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


https://github.com/jjohannes/gradle-plugins-howto
👍1
Weekend Offer для мобильных разработчиков от VK

Коротко о том, как получить оффер. С 21 по 31 марта, после получения заявки, с вами свяжутся и договорятся о звонке, расскажут о командах и назначат слот для онлайн-интервью в выходные. 2 апреля, Андрей Сумин, технический директор Почты Mail.ru, подробнее расскажет о задачах, которые вам предстоит решать в командах. С 12:00 до 20:00 пройдут технические собеседования. В воскресенье, 3 апреля, тимлиды и руководители направлений ещё раз расскажут о предстоящих вызовах и ответят на все вопросы. Уже вечером в воскресенье мы определим лучших кандидатов и отправим им офферы. Дерзайте: команды Почты и Облака Mail.ru ждут именно вас.

Подробнее (https://vk.cc/cc6doB)
Practical_Android_14_Complete_Projects_on_Advanced_Techniques_and.pdf
5.1 MB
Practical Android
Автор: Mark Wickham (2018)

Выберите лучший подход для своего приложения и быстро создайте решение, используя готовые проекты. Эта книга представляет собой сборник проектов, в которых используются передовые методы разработки Android. Книга является идеальным ресурсом для разработчиков, которые имеют некоторый опыт разработки, но не являются экспертами в области Android. Каждая глава включает как минимум один законченный проект, чтобы показать читателю, как реализовываются определённые концепции.
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Повышение производительности при использовании canvas в SwiftUI

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

https://swdevnotes.com/swift/2022/better-performance-with-canvas-in-swiftui/
👍1
Фундаментальные принципы и лучшие практики дизайна мобильных приложений

Большинство мобильных приложений страдают от плохого UX, потому что их создатели не соблюдали принципы и лучшие практики мобильного UX-дизайна. Эти фундаментальные принципы юзабилити были выработаны путем тщательных исследований и пользовательского тестирования. Их применение позволит дизайнерам улучшить пользовательский опыт.

Дизайнерам мобильных приложений непросто, ведь у людей под рукой почти 9 миллионов приложений. Ежедневно в Google Play Store и Apple App Store появляется не менее тысячи новых приложений. Тем не менее, более 75% из них загружаются, открываются один раз и никогда больше не используются. Чаще всего по причине плохого юзабилити.

Возьмем только одну отрасль: электронную коммерцию. В мире насчитывается 3,5 миллиарда смартфонов, и она ежегодно теряет сотни миллиардов долларов из-за несоблюдения лучших практик UX-дизайна. Сайт слишком медленный, не работает поиск, интерфейс не поддается расшифровке, либо навигация ужасна.

Содержание статьи 
Как прокачать визуалку (UI) и научиться красть как художник
Автоматизация работы в Figma с помощью Auto Layout и Variants
Важность юзабилити
Мобильная навигация
Иконки в мобильных интерфейсах
Пользователи должны сразу узнавать элементы, а не пытаться их вспомнить
Скорость
Уведомления
Принципы дизайна мобильных взаимодействий
Законы UX в мобильном UX-дизайне
Использование преимуществ мобильных технологий для повышения UX

Читать: https://ux.pub/fundamentalnye-printsipy-i-luchshie-praktiki-dizayna-mobilnyh-prilozheniy/
👍3
Android: Может ли приложение быть запущено в нескольких процессах?

Короткий ответ – Да.

Но для начала давайте разберемся чем процесс отличается от потока.

Процесс – это сущность на уровне ОС. Каждая программа может быть запущена в одном или нескольких процессах.

Поток – это сущность на уровне Runtime Environment.

Программа может выполняться в нескольких процессах. В каждом из процессов может быть создано несколько потоков (Java Threads).

Вернемся к андроиду. Мы рассмотрели базовые компоненты и узнали, что каждый из компонентов может быть точкой входа в приложение. По умолчанию компоненты приложения работают в дефолтном процессе, но каждый из компонентов <activity>, <service>, <receiver>, <provider> может иметь поле android:process=”<name>” в андроид манифесте. Кастомное значение этого поля явно говорит системе в каком процессе будет работать компонент.

Важно: При старте нового процесса создается инстанс приложения и снова вызывается Application.onCreate(). Если в этом методе вы инициализируете модули или библиотеки, которые используются только в главном процессе, то не забывайте проверять, в каком процессе вы находитесь в момент инициализации.

Подробнее про процессы и треды читайте в документации.

#System #android
Один на всех, или как компания с несколькими десятками проектов сидит на одном Apple Developer-аккаунте

Почему моя сборка устанавливается на симулятор, но не хочет устанавливаться на физическое устройство? Где найти сертификат разработчика? Какая ещё команда разработки? Эти вопросы рано или поздно возникают у разработчиков и начинающих лидов, сопровождающих релиз или настраивающих CI.

Я — Никита Коробейников, iOS Team Lead в Surf. Вдохновился возможностями Match — утилиты для управления сертификатами и профилями. В статье расскажу о типах сборок и распространения в iOS, какие палки в колеса нашего рабочего локомотива вставляет нам Apple и как нас может выручить утилита с парочкой команд.

Подробнее
👍2
Мы в Хекслете не понаслышке знаем о силе обучения и весомости плавного погружения в новую профессию. Наша профессия «Java-разработчик» поможет новичку повысить свой level и трудоустроиться 😎
Android: Приоритеты процессов

Процессы делятся по приоритету на 4 вида, в порядке убывания:

1. Видимый активный процесс (Foreground process). В этом процессе работает приложение, с которым взаимодействует пользователь. Процесс находится в этом состоянии в следующих случаях:
- Activity, у которой вызван onResume(), но еще не вызван onPause()
- Во время выполнения BroadcastReceiver.onReceive()
- Запущен Service и выполняется один из колбэков: onCreate(), onStart(), onDestroy()

2. Видимый процесс. Пользователь знает о приложении, запущенном в этом процессе, но не взаимодействует с ним:
- Activity у которой вызван onPause(), но еще не вызван onStop().
- Service, который запущен через Service.startForeground(). В этом случае пользователь видит нотификацию, связанную с сервисом.
- Service, выполняющий функцию, о которой пользователь осведомлен. Например input method service.

3. Background Service. Процесс с сервисом, запущенным командой startService().

4. Закэшированный процесс. К ним относятся пустые процессы, используемые при старте приложений, и процессы, в которых все активити в onStop() состоянии.

Система убивает процессы в порядке возрастания их приоритета для восстановления ресурсов. Подробнее

#Lifecycle
#System
👍2🔥1
Не можете продлить нужный сервис, оплатить хостинг или получить деньги из-за рубежа?

Ребята из rk.finaxe.ru тоже столкнулись с данной проблемой и запустили сервис, в котором граждане РФ могут оформить онлайн карту Visa или Mastercard в банке Казахстана.

Для чего это нужно:
— Оплата любых зарубежных сервисов и покупок
— Получение денег из-за рубежа
— Использование в путешествиях

Весь процесс проходит онлайн, от вас потребуется только загранпаспорт, даже вставать с дивана не понадобится!

Оформить заявку
и ознакомиться с FAQ можно в боте:
https://t.me/Robokazakh_bot
👍2
Activity: Что такое и как запустить?

Activity – основной компонент в андроиде. Активити – это экран, то что видит и с чем взаимодействует пользователь. Может содержать несколько View и фрагментов. Так же как и другие базовые компоненты, может быть точкой входа в приложение.

Активити с MAIN Intent Filter в манифесте запускается при старте приложения, когда пользователь кликает на иконку приложения.

#Activity
#Components
Jetpack Compose в проектах на React Native: плюсы, минусы и интеграция

Сегодня я расскажу, зачем нужен Jetpack Compose в проектах React Native, и поделюсь опытом интеграции фреймворка в наши приложения. В конце на примере простого компонента разберем весь процесс разработки на Jetpack Compose.

Подробнее
👍2
Как мы в QIWI внедряли Kotlin Multiplatform Mobile (KMM)


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

Подробнее
👍1