Вряд ли вы разрабатываете приложения для watchOS, и еще более вряд ли делаете complications (это такие мини-виджеты на циферблатах). Но если вдруг вы с ними столкнетесь, то быстро поймете, что реализовать пиксель-перфект дизайн для циферблатов разного размера – не тривиальная задача.
http://www.glimsoft.com/02/18/watchos-complications/
http://www.glimsoft.com/02/18/watchos-complications/
5 практических советов по оптимизации UI на Jetpack Compose
Зачастую, создавая очередную Composable функцию, разработчику не приходится задумываться над тем, как Compose работает под капотом, и это прекрасно. Однако у этого есть и обратная сторона — декларативность ухудшает прозрачность и понимание происходящего, некоторые вещи начинают казаться “магией”. Если что-то пойдет не так, это сыграет злую шутку.
Проблемы с производительностью — часть того, с чем можно столкнуться. Об этом и пойдет речь в данной статье.
Подробнее
#android
Зачастую, создавая очередную Composable функцию, разработчику не приходится задумываться над тем, как Compose работает под капотом, и это прекрасно. Однако у этого есть и обратная сторона — декларативность ухудшает прозрачность и понимание происходящего, некоторые вещи начинают казаться “магией”. Если что-то пойдет не так, это сыграет злую шутку.
Проблемы с производительностью — часть того, с чем можно столкнуться. Об этом и пойдет речь в данной статье.
Подробнее
#android
Как варить дизайн-систему для живого приложения (Кошелёк)
Расскажем, как создаём дизайн-систему в Кошельке: с чего начали, как разрабатываем компоненты и решения дизайн-системы на UIKit через стили, обо что успели споткнуться и как решали проблемы с инженерным подходом.
https://www.youtube.com/watch?v=329aAWL9lXo
Расскажем, как создаём дизайн-систему в Кошельке: с чего начали, как разрабатываем компоненты и решения дизайн-системы на UIKit через стили, обо что успели споткнуться и как решали проблемы с инженерным подходом.
https://www.youtube.com/watch?v=329aAWL9lXo
YouTube
Александр Пряничников (Кошелёк) – Как варить дизайн-систему для живого приложения
Расскажем, как создаём дизайн-систему в Кошельке: с чего начали, как разрабатываем компоненты и решения дизайн-системы на UIKit через стили, обо что успели споткнуться и как решали проблемы с инженерным подходом.
Доклад с митапа CocoaHeads от 18 февраля…
Доклад с митапа CocoaHeads от 18 февраля…
👋 Мы — команда айтишников. В текущих условиях компания не может работать как работала, и мы решили переехать всей командой.
💬 Создали канал для таких же, как мы, — тех, кто хочет уехать. Собираем всё самое полезное про релокацию. Рассказываем, с чем столкнулись сами, ищем лайфхаки и способы похачить систему (например, нашли несколько способов, как жить за границей на рубли).
👨💻 А вообще, мы HR-IT-чувачки (то есть без лишней скромности профи в сфере трудоустройства) и сейчас готовим новый проект: будем помогать айтишникам организовать переезд и устроиться на работу в валюте. И ещё сверху грант будем давать💰
👉 Что для этого нужно? Пока что — присоединиться к каналу RelocationDev и следить за новостями😉 Скоро обо всём расскажем — в мельчайших подробностях.
💬 Создали канал для таких же, как мы, — тех, кто хочет уехать. Собираем всё самое полезное про релокацию. Рассказываем, с чем столкнулись сами, ищем лайфхаки и способы похачить систему (например, нашли несколько способов, как жить за границей на рубли).
👨💻 А вообще, мы HR-IT-чувачки (то есть без лишней скромности профи в сфере трудоустройства) и сейчас готовим новый проект: будем помогать айтишникам организовать переезд и устроиться на работу в валюте. И ещё сверху грант будем давать💰
👉 Что для этого нужно? Пока что — присоединиться к каналу RelocationDev и следить за новостями😉 Скоро обо всём расскажем — в мельчайших подробностях.
👎2
Android: Из каких базовых компонент состоит приложение?
Базовые компоненты андроид приложения: Activity, Service, BroadcastReceiver, ContentProvider. Каждый из базовых компонент объявляется в андроид манифесте и может являться точкой входа в приложение.
Activity представляет UI и функциональность, видимые пользователю.
Service используется для исполнения долгих операций, которые не требуют взаимодействия с пользователем.
BroadcastReceiver принимает и обрабатывает броадкаст ивенты, отправленные внутри приложения или из других приложений.
ContentProvider используется для обмена данными с другими приложениями.
Каждый из компонентов подробнее рассмотрим в будущем.
#Components
Базовые компоненты андроид приложения: Activity, Service, BroadcastReceiver, ContentProvider. Каждый из базовых компонент объявляется в андроид манифесте и может являться точкой входа в приложение.
Activity представляет UI и функциональность, видимые пользователю.
Service используется для исполнения долгих операций, которые не требуют взаимодействия с пользователем.
BroadcastReceiver принимает и обрабатывает броадкаст ивенты, отправленные внутри приложения или из других приложений.
ContentProvider используется для обмена данными с другими приложениями.
Каждый из компонентов подробнее рассмотрим в будущем.
#Components
👍9
Сейчас одновременно много разработчиков ищут новую работу. Конкуренция и борьба за позиции вырастает. Поэтому стоит уделять больше внимания подготовке к техническим собеседованиям.
В бесплатном телеграм боте QTalents Interview можно тренировать навык технических собеседований. Там каждую неделю подбираются собеседники по разным языкам программирования, тренируются вместе и оставляют друг другу комментарии.
Советуем попробовать! Если остались вопросы, заходите на сайт.
В бесплатном телеграм боте QTalents Interview можно тренировать навык технических собеседований. Там каждую неделю подбираются собеседники по разным языкам программирования, тренируются вместе и оставляют друг другу комментарии.
Советуем попробовать! Если остались вопросы, заходите на сайт.
Как писать плагины Gradle - ответы на распространенные вопросы и альтернативные решения реализации.
В мире Android существует довольно плохо освещённая тема — написание плагинов к Gradle.
Автор статьи помогает разобраться с написанием плагинов и даёт не мало полезных штук из своего опыта: с чего начать писать плагины, насколько это сложно, какие есть инструменты и т.д.
https://github.com/jjohannes/gradle-plugins-howto
В мире Android существует довольно плохо освещённая тема — написание плагинов к Gradle.
Автор статьи помогает разобраться с написанием плагинов и даёт не мало полезных штук из своего опыта: с чего начать писать плагины, насколько это сложно, какие есть инструменты и т.д.
https://github.com/jjohannes/gradle-plugins-howto
GitHub
GitHub - jjohannes/gradle-plugins-howto: How to write Gradle plugins - answers to common questions and alternative implementation…
How to write Gradle plugins - answers to common questions and alternative implementation solutions - jjohannes/gradle-plugins-howto
👍1
Weekend Offer для мобильных разработчиков от VK
Коротко о том, как получить оффер. С 21 по 31 марта, после получения заявки, с вами свяжутся и договорятся о звонке, расскажут о командах и назначат слот для онлайн-интервью в выходные. 2 апреля, Андрей Сумин, технический директор Почты Mail.ru, подробнее расскажет о задачах, которые вам предстоит решать в командах. С 12:00 до 20:00 пройдут технические собеседования. В воскресенье, 3 апреля, тимлиды и руководители направлений ещё раз расскажут о предстоящих вызовах и ответят на все вопросы. Уже вечером в воскресенье мы определим лучших кандидатов и отправим им офферы. Дерзайте: команды Почты и Облака Mail.ru ждут именно вас.
Подробнее (https://vk.cc/cc6doB)
Коротко о том, как получить оффер. С 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. Каждая глава включает как минимум один законченный проект, чтобы показать читателю, как реализовываются определённые концепции.
Автор: 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/
Говорят, что использование 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/
Большинство мобильных приложений страдают от плохого 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).
Вернемся к андроиду. Мы рассмотрели базовые компоненты и узнали, что каждый из компонентов может быть точкой входа в приложение. По умолчанию компоненты приложения работают в дефолтном процессе, но каждый из компонентов
Важно: При старте нового процесса создается инстанс приложения и снова вызывается
Подробнее про процессы и треды читайте в документации.
#System #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 и как нас может выручить утилита с парочкой команд.
Подробнее
Почему моя сборка устанавливается на симулятор, но не хочет устанавливаться на физическое устройство? Где найти сертификат разработчика? Какая ещё команда разработки? Эти вопросы рано или поздно возникают у разработчиков и начинающих лидов, сопровождающих релиз или настраивающих CI.
Я — Никита Коробейников, iOS Team Lead в Surf. Вдохновился возможностями Match — утилиты для управления сертификатами и профилями. В статье расскажу о типах сборок и распространения в iOS, какие палки в колеса нашего рабочего локомотива вставляет нам Apple и как нас может выручить утилита с парочкой команд.
Подробнее
👍2
Мы в Хекслете не понаслышке знаем о силе обучения и весомости плавного погружения в новую профессию. Наша профессия «Java-разработчик» поможет новичку повысить свой level и трудоустроиться 😎
Android: Приоритеты процессов
Процессы делятся по приоритету на 4 вида, в порядке убывания:
1. Видимый активный процесс (Foreground process). В этом процессе работает приложение, с которым взаимодействует пользователь. Процесс находится в этом состоянии в следующих случаях:
-
- Во время выполнения
- Запущен
2. Видимый процесс. Пользователь знает о приложении, запущенном в этом процессе, но не взаимодействует с ним:
-
-
-
3. Background Service. Процесс с сервисом, запущенным командой startService().
4. Закэшированный процесс. К ним относятся пустые процессы, используемые при старте приложений, и процессы, в которых все активити в
Система убивает процессы в порядке возрастания их приоритета для восстановления ресурсов. Подробнее
#Lifecycle
#System
Процессы делятся по приоритету на 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
Ребята из rk.finaxe.ru тоже столкнулись с данной проблемой и запустили сервис, в котором граждане РФ могут оформить онлайн карту Visa или Mastercard в банке Казахстана.
Для чего это нужно:
— Оплата любых зарубежных сервисов и покупок
— Получение денег из-за рубежа
— Использование в путешествиях
Весь процесс проходит онлайн, от вас потребуется только загранпаспорт, даже вставать с дивана не понадобится!
Оформить заявку и ознакомиться с FAQ можно в боте:
https://t.me/Robokazakh_bot
👍2
Activity: Что такое и как запустить?
Activity – основной компонент в андроиде. Активити – это экран, то что видит и с чем взаимодействует пользователь. Может содержать несколько View и фрагментов. Так же как и другие базовые компоненты, может быть точкой входа в приложение.
Активити с MAIN Intent Filter в манифесте запускается при старте приложения, когда пользователь кликает на иконку приложения.
#Activity
#Components
Activity – основной компонент в андроиде. Активити – это экран, то что видит и с чем взаимодействует пользователь. Может содержать несколько View и фрагментов. Так же как и другие базовые компоненты, может быть точкой входа в приложение.
Активити с MAIN Intent Filter в манифесте запускается при старте приложения, когда пользователь кликает на иконку приложения.
#Activity
#Components
Jetpack Compose в проектах на React Native: плюсы, минусы и интеграция
Сегодня я расскажу, зачем нужен Jetpack Compose в проектах React Native, и поделюсь опытом интеграции фреймворка в наши приложения. В конце на примере простого компонента разберем весь процесс разработки на Jetpack Compose.
Подробнее
Сегодня я расскажу, зачем нужен Jetpack Compose в проектах React Native, и поделюсь опытом интеграции фреймворка в наши приложения. В конце на примере простого компонента разберем весь процесс разработки на Jetpack Compose.
Подробнее
👍2
Подборка ссылок на блоги по Swift
• https://github.com/raywenderlich/swift-algorithm-club
• https://sarunw.com
• https://vadimbulavin.com
• https://swiftbysundell.com
• https://avanderlee.com
• https://fivestars.blog
• https://clean-swift.com
• https://swiftwithmajid.com
• https://hackingwithswift.com
• https://swiftrocks.com
• https://donnywals.com
• https://artyom.space/swift-roadmap/
• https://holyswift.app
• https://martinmitrevski.com
• https://khawerkhaliq.com
• https://blog.swiftpackageindex.com
• https://peterfriese.dev
• https://fewlinesofcode.com
• https://serialcoder.dev
• https://www.simpleswiftguide.com
• https://www.swiftlyrush.com
• https://github.com/raywenderlich/swift-algorithm-club
• https://sarunw.com
• https://vadimbulavin.com
• https://swiftbysundell.com
• https://avanderlee.com
• https://fivestars.blog
• https://clean-swift.com
• https://swiftwithmajid.com
• https://hackingwithswift.com
• https://swiftrocks.com
• https://donnywals.com
• https://artyom.space/swift-roadmap/
• https://holyswift.app
• https://martinmitrevski.com
• https://khawerkhaliq.com
• https://blog.swiftpackageindex.com
• https://peterfriese.dev
• https://fewlinesofcode.com
• https://serialcoder.dev
• https://www.simpleswiftguide.com
• https://www.swiftlyrush.com
👍5
Как мы в QIWI внедряли Kotlin Multiplatform Mobile (KMM)
КММ — это технология кроссплатформенной разработки, позволяющая писать общий код под основные платформы за исключением UI-слоя. Все продукты со временем накапливают очень большой технологический контекст; КММ, в свою очередь, позволяет его облегчить, делая компоненты технологического стека общими для команд и платформ. Такие технологии дают неоспоримые преимущества — возможность использовать ресурс каждого разработчика при создании новых фич, единый набор тестов, улучшение инженерных практик в командах и прочее.
Подробнее
КММ — это технология кроссплатформенной разработки, позволяющая писать общий код под основные платформы за исключением UI-слоя. Все продукты со временем накапливают очень большой технологический контекст; КММ, в свою очередь, позволяет его облегчить, делая компоненты технологического стека общими для команд и платформ. Такие технологии дают неоспоримые преимущества — возможность использовать ресурс каждого разработчика при создании новых фич, единый набор тестов, улучшение инженерных практик в командах и прочее.
Подробнее
👍1