Мобильная разработка – Telegram
Мобильная разработка
13.9K subscribers
861 photos
237 videos
2.96K links
Актуальное по мобильной разработке — Android, iOS, кроссплатформа

Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/oVBP
Download Telegram
Target API Level policy — Google продлила сроки

Приложения с уровнем API 29 и ниже будут поддерживаться в Google Play Store до 31 января 2023 года вместо 1 ноября 2022 года. Google советует всем разработчикам обновить свои приложения до конца января, однако есть ещё небольшая пометка — если разработчикам нужно больше времени для обновления, то можно сделать запрос на продление этого срока.

После получения разрешения приложение было доступно для всех пользователей до 1 мая 2023 года.

#новости
👍4
Аналог приложения Uber на iOS 16 & Xcode 14

В этом видеоуроке за 4 часа вы создадите приложение, которое похоже на Uber с помощью SwiftUI. Автор разбирает:

— методы для получения текущего местоположения пользователя,
— как создать интерфейс и реализовать функционал по просмотру запросов на поездку,
— поиск и выбор местоположения,
— как добавить данные о поездке, тёмный режим и другое:

https://youtu.be/Z6-KVWXbw-w

#ios
👍16👏3
Полезные материалы о Flutter и Dart-разработке

Подборка YouTube-каналов, книг и других материалов, которые помогут вам быстро освоить Flutter и заодно Dart, которые вы могли пропустить:

https://tproger.ru/articles/poleznye-materialy-o-flutter-i-dart-razrabotke/

#flutter #dart
👍8🔥1👏1
Уроки, извлечённые при модульизации приложения

Небольшая серия статей, в которой разработчики делятся опытом, приобретенным за 5 лет в результате масштабирования приложения с нуля до более чем 150 модулей.

Часть 1: Модульная структура, цель проекта и mono repo, исследование времени сборки.

Часть 2: Добавление в проект sample app’ов , изменения в команде, поддержка работоспособности проекта.

#android
👍2
ChatGPT для генерации бойлерплейта и повышения производительности

Вероятно, вы уже слышали про ChatGPT — это нейросеть нового поколения на основе GPT 3.5 от OpenAI, которая позволяет писать небольшие приложения, решать алгоритмические задачи и даже находить ответы на StackOverflow. Но можно ли с её помощью улучшить некоторые процессы в разработке мобильных приложений?

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

https://levelup.gitconnected.com/using-chatgpt-to-set-up-an-android-app-82d65c82cb7b

#android
👍5
​Голосование за самый популярный ЯП 2022 по версии читателей Tproger завершилось!

Тройка победителей:
1. C# — первое место. «Шарпу» удалось обойти Python всего на 100 голосов, и он становится лучшим языком программирования в 2022 году!

2. Python — язык программирования, который был признан лучшим в 2020 и 2021 годах.

3. Java — занимает третье место, набрав 1200 голосов против 845 голосов за TypeScript в финальном голосовании.

Подробнее о результатах:

https://tproger.ru/articles/battl-jazykov-programmirovanija-2022-zavershilsja-2/

И хотя мы делали упор на субъективную оценку, интересно, что результаты очень похожи на топ языков и в других рейтингах. Kotlin пока ещё уступает Java, но с каждым годом отрыв всё сокращается.

Тем не менее, будем рады вашему фидбеку. Если считаете, что можно было бы что-то добавить в голосование, пишите предложения прямо под этим постом — обязательно учтём в следующем баттле. Например, стоит ли добавлять Dart в следующем году?

#toplang2022
💩15🤝8👍31
Разбираемся с RunLoop.main и DispatchQueue.main (iOS)

Оба часто используются в качестве планировщиков внутри Combine, поэтому автор статьи написал об их отличиях именно в нём. RunLoop и DispatchQueue выполняют код в основном потоке, что означает, что вы можете использовать оба для обновления пользовательского интерфейса. В чём разница?

По мнению автора, основное различие между RunLoop и DispatchQueue заключается в том, что DispatchQueue выполняется напрямую, а RunLoop может быть занят.

Стоит ли тогда использовать RunLoop? На примере скролла изображения полный разбор в статье:

https://www.avanderlee.com/combine/runloop-main-vs-dispatchqueue-main/

#ios
👍7
Чистая архитектура для iOS-приложений

В статье разбирается пример, как может выглядеть чистая архитектура в приложении на Swift с использованием SwiftUI и Combine. Автор показывает один из способов реализации MyView, MyViewModel, а также способ внедрения зависимостей с помощью SwiftUI:

https://tprg.ru/t6hj

#ios
🔥3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Health Connect Android API — создаём своё приложение

Используя Health Connect, можно реализовать единый интерфейс для чтения и записи данных о здоровье и физической форме пользователя. В этом руководстве разбирается данный API на примере создания приложения — fitLogger, а также реализуется:

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

Подробнее в статье:

https://www.kodeco.com/35028713-health-connect-android-api

#android
👍9
История героя про самый запутанный краш в его жизни на Android

Любой разработчик встречается с багами. Одни решаются быстро, другие требуют времени, а третьи — доводят до первых седин. Герой статьи столкнулся с лагающим UI и предположил, что проблема заключается в R8, но нет:

https://habr.com/ru/post/706126/

Спойлер: Проблема была в dex файлах.

#android
🔥7👍4
Виджеты экрана блокировки в iOS

Одной из самых ожидаемых фич, которая появилась вместе с обновлениями в iOS 16, является виджет экрана блокировки. Home Screen и Lock Screen виджеты работают на базе WidgetKit, поэтому способ создания виджета для экрана блокировки очень похож на то, как мы создаём виджет для домашнего экрана.

В этой статье автор показывает, как немного изменив код уже существующих виджетов, можно легко создать виджет для Lock Screen:

https://swiftsenpai.com/development/create-lock-screen-widget/

#ios
👍6
Flutter Forward — регистрация уже началась

Мероприятие начнётся 25 января, на котором будут представлены бизнес и тех. доклады по Flutter. Также пройдёт сессия вопросов и ответов в прямом эфире, а команда Flutter расскажет о плане по дальнейшему развитию фреймворка.

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

Источник: https://flutter.dev/events/flutter-forward
👍6👎1
Путеводитель по времени и дате на Kotlin

В этом видео автор рассказывает, как можно использовать LocalDate, LocalTime, LocalDateTime и ZonedDateTime в проектах на Kotlin. Данный урок отлично подойдёт начинающим и тем, кто немного путается в формате:

https://youtu.be/gzHy6wKAJh8

#kotlin #android
👍18🔥32
This media is not supported in your browser
VIEW IN TELEGRAM
ViewModel — основные ошибки при разработке приложения

Герой статьи делится своим мнением о работе ViewModel и UI компонентах. Стоит отметить, что статья основана на личном опыте самого автора. Разработчик поделился самыми распространёнными ошибками и антишаблонами, которые встречаются при разработке приложения на Android с архитектурой MVVM/MVI:

https://medium.com/@patilshreyas/viewmodel-for-ui-business-not-ui-operations-a6e25b850df1

#android
👍12🔥1
Swift: локальное управление несколькими версиями

Большинство разработчиков используют Xcode для установки версии Swift. Но что, если нужно загрузить тулчейн, который не связан с релизной версией
Xcode, например, для WebAssembly?

В статье рассматривается, как установить и использовать набор инструментов Swift вручную, а также с помощью инструмента командной строки — swiftenv:

https://www.polpiella.dev/managing-multiple-swift-versions-locally/

#swift #ios
👍2
Как устроен Android?

Доклад от Android Broadcast, в котором разбирается межпроцессное взаимодействие в Android, а также механизм Binder. Спикер: Андрей Белоус, Android разработчик в Bumble:

https://youtu.be/yyaw0C6oA5k

#android
🔥12👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Серия статей по Bottom sheet на iOS

Часть 1: Работа кастомного отображения контроллеров, презентация контроллера.

Часть 2: Aнимация навигационных переходов, добавление navigation bar для управления навигацией, а также плюсы и минусы данного подхода.

Часть 3: Как закрывать контроллеры с помощью свайпа по контенту, презентованные как bottom sheet и фишки по UICollectionView.

#ios
👍9
Clojure для Flutter

Clojure — современный диалект Лиспа, построенный на JVM. В этом году вышел релиз ClojureDart, который подарил разработчикам возможность писать мобильные и веб-приложения на Flutter. Какие же его преимущества? Стабильные библиотеки и кодовая база, простой и понятный синтаксис. А детальнее автор разобрал в статье, где сравнил данный язык с Dart:

https://habr.com/ru/post/705448/

#flutter
💩14🔥7👍1
Apple прижали к стене или Digital Market Act

Ещё летом ЕС одобрил закон о цифровых рынках, который вступил в силу 1-го ноября. Данный закон касается всех больших тех.компаний, поэтому соответственно затрагивает Apple и Google. Согласно последним новостям Apple разрешит установку приложений не из Apple Store до 2024 года.

В отчёте Bloomberg Марк Гурман также говорит, что новый мандат для Apple является результатом требований ЕС. Пока Apple отказывается от комментариев. Что думаете? Повлияет ли это как-то на разработчиков?

#apple
👍11👎5🕊3
Comprehensive Rust — новый курс от Android

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

— сборка компонентов Android на Rust,
— работа с AIDL,
— совместимость с C, C++ и Java:

https://google.github.io/comprehensive-rust/

#rust #android
🔥16
Подборка актуальных вакансий

Android-разработчик
Где: удалённо
Опыт: от 3 лет

Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет

iOS-разработчик
Где: удалённо
Опыт: не указан

iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет

Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет

#вакансии #работа
😁3👍1