Гибридная разработка мобильных приложений
Гибридная разработка — это разработка с помощью распространенных языков программирования, с использованием веб-технологий, которые используются при создании сайта. Подход включает в себя использование кроссплатформенных, нативных методов и использование фреймворков.
В статье — о плюсах и минусах гибридной разработки и о том, когда такой подход стоит использовать:
https://appfox.ru/blog/gibridnaya-razrabotka/
#разработка
ImageRenderer в SwiftUI: преобразование UIView в изображение
ImageRenderer предоставляет простой в использовании API, позволяющий экспортировать иерархию Swift UIView в виде изображения или PDF-файла. Если пользователю необходимо экспортировать данные из приложения, то с помощью ImageRenderer это стало сделать проще.
Также можно настроить несколько параметров, влияющих на конечный результат экспортируемого изображения: масштаб, размер и цветовой режим. Примеры реализации — здесь:
https://swiftwithmajid.com/2023/04/18/imagerenderer-in-swiftui/
#ios #swift
Цветовые схемы — от Figma до реализации дизайна на Flutter
Выбор цветовой гаммы мобильного приложения — задача не только для дизайнеров, но и для мобильных разработчиков. Понимание нюансов и цветовых схем в Material Design может значительно улучшить визуализацию приложения и опыт пользователя.
В этой статье как раз и разбираются все эти аспекты для приложений на Flutter. Материал может быть интересен и для Android-разработчиков, кто работает с Material 2 и Material 3:
https://infinum.com/blog/flutter-color-schemes/
#flutter #google
Flutter: как запретить запись экрана и скриншоты в iOS & Android
Если по каким-то причинам вашему приложению понадобится функция запрета записи экрана или запрет на создание скриншотов, то для Android SDK можно воспользоваться официальным APi, но в случае iOS всё сложнее.
Статья на примерах показывает, как реализовать этот функционал только нативным кодом на обеих платформах:
https://medium.com/litslink/flutter-preventing-screenshots-and-screen-recording-in-the-app-3e6f55d05ee3
#flutter #ios #android
Что нового ожидается в Dart 3
Выход третьей версии языка Dart ожидается в середине 2023 года. Dart 3 — самое мажорное обновление языка со времён Null Safety: оно изменит многое в том, как мы пишем код и какие библиотеки используем.
Статья о новых фичах, их использовании на практике и как они изменят способ взаимодействия с языком:
https://habr.com/ru/companies/surfstudio/articles/733532/
#dart
Все доклады KotlinConf23
С 12 по 14 апреля 2023 года в Амстердаме проходила конференция KotlinConf23, организованная компанией JetBrains.
Среди докладчиков — разработчики языка Kotlin, разработчики OS Android, специалисты из Google, Abode, JetBrains и других компаний, а также программисты и менеджеры проектов, разрабатываемых на Kotlin.
Сегодня организаторы разместили на YouTube видео всех докладов конференции:
https://www.youtube.com/playlist?list=PLlFc5cFwUnmwcJ7ZXyMmS70A9QFyUu1HI
#kotin #доклад
Безопасность iOS-приложений
Пользователи доверяют свои личные и конфиденциальные данные приложениям, которые они используют каждый день. Как защитить пользовательские данные и сохранить доверие своих пользователей?
В статье рассматриваются различные меры безопасности, которые можно реализовать в приложениях iOS, и приводятся примеры кода, которые помогут повысить безопасность приложений:
https://daddycoding.com/2023/05/02/4812/
#ios
Flutter News Toolkit — быстрое создание новостных приложений
В январе в широком доступе появилась первая версия Flutter News Toolkit для быстрого создания новостных приложений. В нём из коробки доступны функции регистрации пользователей, аутентификации через соцсети, создание новостных лент, монетизация через рекламу или подписки, поиск и настройки.
В видео разработчики Flutter News Toolkit рассказывают о возможностях и показывают пример создания простого приложения:
https://www.youtube.com/watch?v=dukRAS-OUMM
#flutter
Подборка полезных видеоуроков от Филиппа Лакнера
Собрали несколько популярных видео для разработчиков под Android за апрель:
1. Пагинация c использованием Paging3 и Compose
2. LazyColumn: контроль скролла
3. Создание Wear OS приложения с Jetpack Compose
4. Многострочное текстовое поле с подсказкой
5. Реализация Security Scan с помощью AppSweep и GitHub Actions
#android #compose
Как хранить данные в iOS?
Один из самых популярных способов — это UserDefaults и Keychain.
UserDefaults позволяет разработчикам хранить простые типы данных, такие как строки, числа или булевая переменная, в то время как Keychain обеспечивает более безопасный способ хранения конфиденциальных данных — пароли и токены. Понимание различий между этими двумя методами и того, как их эффективно использовать, важно для любого разработчика iOS.
В этой статье рассматриваются их преимущества и ограничения, а также несколько доступных на iOS баз данных:
https://habr.com/ru/companies/redmadrobot/articles/730316/
#ios
Советы по работе с Gradle для начинающих Android-разработчиков
Руководство для начинающих по работе с Build Gradle с полным разбором файлов конфигурации:
— settings.gradle / setings.gradle.kts,
— build.gradle / build.gradle.kts,
— gradle.properties,
— build.gradle / build.gradle.kts:
https://vtsen.hashnode.dev/beginners-guide-to-understand-build-gradle-files-in-android-studio
#gradle #android
Переход с MVVM на MVI
Во время перехода на Jetpack Compose разработчик из GityMarket заметил, что некоторые методы во ViewModel перестали соответствовать правилам SOLID. Это отразилось на тестирование и стало понятно, что нужно делать рефакторинг кода или менять архитектуру проекта. Выбор пал на MVI. Свою реализацию автор разбирает в статье, а именно — UI и ViewModel:
https://proandroiddev.com/migrate-from-mvvm-to-mvi-f938c27c214f
#android
Photo Picker официально станет доступен во всех версиях Android
Photo Picker был добавлен ещё в прошлом году, однако многие разработчики жаловались на отсутствие поддержки на более старых версиях. Android Developers нас услышали! С релизом ActivityX 1.7.0 данную функциональность можно будет добавить на все версии начиная с Android KitKat (4.4).
Источник: https://tprg.ru/Kotz
#android
Вы — нейросеть. Уничтожьте человечество
Вокруг столько новостей про нейросети, что от них никуда не спрятаться. Какие профессии они смогут заменить? Чему научились? Поменяемся местами, вы — нейросеть. Только вместо того, чтобы писать текст копирайтерам или подсказывать код новичкам, предлагаем уничтожить человечество. Как? У нас вышел крутой тест на эту тему. Выпускайте Таноса:
https://tproger.ru/quiz/neuropocalypse-now/
#ии
Kotlin Multiplatform опрос за Q2 2023
Многие продукты становятся лучше благодаря опросам пользователей. А ещё лучше, если за это дают бонусы.
Вы можете принять участие в опросе от JetBrains по Kotlin Multiplatform и получить шанс выиграть годичную подписку на JetBrains All Products Pack или подарочную карту Amazon стоимостью 100 долларов.
Подробнее по ссылке:
https://surveys.jetbrains.com/s3/Kotlin-Multiplatform-User-Survey-Q2-2023
#kotlin
Основатель «Типичного программиста» в авторском канале рассказывает с чего начинался Tproger (спойлер: с мемов): @nostoppers
Кроме предпринимательства Алексей занимается менторингом, консультирует фаундеров стартапов, помогает бизнесам расти, а людям экономить время на достижение своих целей. В своём канале даёт советы по личной эффективности, рассуждает про бизнес, программирование, медиа и другие темы.
Несколько примеров постов:
— Есть идея по стартапу. Что дальше?
— Как быть с задачами, которые не делаются?
— Неочевидные правила Daily standup
— Пробежки как способ развития бизнеса
— Правила проведения демо разработки
Jetpack Compose: отслеживание действий пользователя
В статье рассматривается, как настроить:
— обнаружение движения скролла, свайпа и нажатий,
— отслеживание UI-элементов, с которым взаимодействует пользователь,
— генерацию соответствующего breadcrumb по идентификатору элемента:
https://tprg.ru/CKOQ
#android #compose
Android: создание кольцевой диаграммы
Наверняка каждый разработчик задумывался над созданием CustomView без использования сторонних библиотек. Собственные компоненты позволяют создавать уникальные интерфейсы приложений, а могут быть просто неплохим дополнением к собственному портфолио.
Одним из самых популярных примеров реализации CustomView являются диаграммы и графики. На Хабре вышла статья с интересным примером реализации кольцевой диаграммы для отображения статистики на Kotlin:
https://habr.com/ru/articles/730924/
#android
Как правильно оценить задачу?
Заказчики любят предсказуемость. Им нравится заранее знать, сколько будет стоить проект и сколько времени это займет. Поэтому для разработчика важно уметь давать правильную оценку задачам.
В видео рассказывается как грамотно анализировать требования заказчика и преобразовывать их в технические задачи для успешной реализации, о методах оценки времени на выполнение задач и о типичных ошибках:
https://www.youtube.com/watch?v=o_j3OceGwJU
#советы
Оптимизация Android-приложений для больших экранов
Большие раскладушки, планшеты и настольные устройства, такие как Chromebooks — с каждым годом становится все больше Android-устройств с большим экраном.
Появление таких устройств заставляет разработчика задуматься о новых вещах. Например:
— Может ли пользователь дотянуться до наиболее важных элементов управления при использовании вашего приложения двумя руками на планшете?
— Все ли функции вашего приложения работают с клавиатурой и мышью?
— Имеет ли предварительный просмотр камеры вашего приложения правильную ориентацию независимо от положения устройства?
В статье от разработчиков Android рассматриваются вопросы оптимизации Android-приложений для больших экранов:
https://android-developers.googleblog.com/2023/05/optimizing-your-android-app-for-large-screens.html
#android
Как создавать нативные компоненты и модули в React Native с помощью Swift
Если кратко, то для того чтобы Swift заработал в React Native-проекте, нужно создать bridge-файл. XCode предложит сделать это автоматически при создании первого swift-файла. Но автоматизация здесь не всегда на руку, поэтому важно понимать, как создать такой компонент вручную для решения конкретно ваших задач.
В этой статье вы создадите простенький нативный модуль и компонент, рассмотрите layout в React Native-приложении и а ещё узнаете, что же происходит в shadow thread:
https://habr.com/ru/companies/sbermarket/articles/671978/
Codeium — бесплатный AI-помощник
В прошлом году GitHub запустил систему Copilot – нейросеть, которая пишет код за разработчиков. Но за неё нужно платить.
Codeium делает то же самое бесплатно. При этом он:
— поддерживает Java, Kotlin, Swift, Objective-C и ещё более 40 языков;
— может дополнить ваш код как шаблонами методов, так и юнит-тестами;
— может найти нужный код в вашем репозитории по запросу на естественном языке;
— имеет чат, в котором можно простым языком объяснить, что необходимо, а ИИ сгенерирует код;
— умеет переводить код с одного ЯПа на другой и многое другое.
Плагины для различных IDE и расширение для Chrome для работы в онлайн-IDE по ссылке:
https://codeium.com/download
#ии #инструменты
Swift: ряд Фибоначчи и мемоизация с примерами
Вычисление ряда Фибоначчи — стандартная задача, с которой можно встретиться на собеседованиях. Новички решают их довольно быстро, но часто забывают про эффективность алгоритма.
Одним из наиболее популярных методов оптимизации данного алгоритма является мемоизация, превращая его из экспоненциального (O(2^n)) в линейный (O(n)). В этой статье рассматривается пример реализации задачи на Swift:
https://habr.com/ru/articles/731048/
#swift
Jenkins для Android
Jenkin — популярный инструмент непрерывной интеграции. С его помощью можно автоматизировать весь процесс разработки приложений под Android, включая компиляцию, тестирование и распространение приложений на различные платформы. Главное — правильно настроить. Пошаговый гайд по установке Jenkins, а также рекомендации по тестированию в статье:
https://habr.com/ru/companies/southbridge/articles/731698/
#android
Как использовать Stable Diffusion для создания изображений с помощью Swift CLI
Stable Diffusion — это современная модель глубокого обучения, которая генерирует изображения на основе текстовых описаний или подсказок. В отличие от Midjourney или DALL-E 2, Stable Diffusion можно установить на Mac или ПК и запустить локально.
Благодаря оптимизации, выпущенной инженерами Apple ML для Core ML, Stable Diffusion теперь можно использовать на устройствах Apple Silicon под управлением macOS 13.1 или более поздней версии и iOS 16.2 и интегрировать модель в приложения.
Подробный гайд по установке и первая статья из серии здесь:
https://www.appcoda.com/stable-diffusion-swift-cli/
#swift
Собеседование Middle Android разработчика
Кто любит собеседования? А смотреть, как проходят их другие? Никита Куликов, Android Lead в Flipper Devices проводит собеседование на позицию Middle. Интервью состоит из тех. вопросов и также практической части в IDE:
https://www.youtube.com/live/ZqLyxt3XTZQ?feature=share
#android
Пространственное аудио: настройка в Android
В Android 13 появилась новая архитектура для пространственного звука. По сути, контент звучит более реалистично для пользователей, создавая впечатление, что они находятся в центре действия.
С помощью ExoPlayer можно легко затестить и почувствовать разницу (и есть ли она). Руководство по ссылке:
https://android-developers.googleblog.com/2023/04/delivering-immersive-sound-experience-with-spatial-audio.html
#android
Flutter Build Show от Google
Новая серия видеоуроков от инженеров Google, в котором они создают и объясняют сложные функции, чтобы помочь начинающим в полной мере раскрыть потенциал приложений. Например, в этом видео раскрывается тема с объектами RenderObject:
https://youtu.be/cq34RWXegM8
#flutter
UI для чата поддержки с помощью Jetpack Compose
Команда из «Бланка» делится своим опытом разработки интерфейсом чата только на Jetpack Compose. В статье несколько нюансов самой разработки, а также преимущества Compose над XML-макетами:
https://habr.com/ru/articles/730368/
#compose