Инструкция: как быстро настроить GitLab CI/CD на Flutter-проекте
В интернете немного подробных руководств по этой теме. А в тех, что есть, встречаются нерабочие и запутанные примеры либо они просто плохого качества.
Вот свежая инструкция, составленная «по горячим следам». Сохраните, чтобы не потерять — инструкция здорово облегчит жизнь, когда вам быстро понадобится собрать CI/CD на Flutter-проекте.
Код будет проверяться и тестироваться, сборки собираться, а вы сэкономите кучу времени и нервов: https://habr.com/ru/companies/agima/articles/779028/
#flutter
Как тестировать интерфейс мобильных приложений?
Сегодня в нашей рубрике #инструменты — Appium, опенсорс-платформа для тестов.
С его помощью можно тестировать нативные, гибридные и веб-приложения. При этом автоматизированное тестирования возможно как на физических устройствах, так и на эмуляторе/симуляторе.
Appium не зависит от операционной системы мобильного устройства — у инструмента есть фреймворк или оболочка, переводящие команды Selenium Webdriver в команды UIAutomation (iOS) или UIAutomator (Android).
У репозитория уже больше 17 тыс звёзд, а функциональность доступна бесплатно: https://appium.io/docs/en/2.2/
#android #ios #инструменты #тестирование
Old but gold: Создаём игру «Крестики-нолики» на Android
2-часовой видеоурок, в котором разбирается, как создать популярную игру с помощью Ktor и Web Sockets. Автор также показывает, как настроить серверную часть, чтобы играть с друзьями:
Хоть ролику и год, он всё еще актуален: https://youtu.be/sKCCwl5lNBk
#android
Old but gold: измеряем производительность Android-приложения
Небольшой видеоурок о том, как с помощью Jetpack Benchmarking легко измерить время запуска и производительность UI:
https://youtu.be/XHz_cFwdfoM
#android
Логические задачи для программистов, которые бесят своей простотой
На собеседованиях часто задают каверзные логические задачи. Они кажутся глупыми, их применимость к реальным рабочим задачам оценить вообще не получается. Но тем не менее, они здорово развивают логику и их все равно придётся когда-нибудь решать.
Составили список каверзных задач по программированию, которые чаще других встречаются на собеседованиях: https://tproger.ru/articles/logicheskie-zadachi-po-programmirovaniyu-kotorye-tolko-kazhutsya-slozhnymi
#задачи #собеседование
Что нового в Android Studio 2023.1 Hedgehog и стоит ли обновляться? Спойлер: впечатления спорные
Вышла новая версия Android Studio, которая базируется на IntelliJ 2023.1.
Основные изменения кратко:
— Android Vitals теперь отображаются в проекте в Android Studio
— Появился Power Profile — замер расхода энергии на устройстве.
— Автоматизировали миграцию на Target SDK 34 (Android 14).
— Сделали возможным показ и управление подключенным устройством из Android Studio (на гифке ниже).
— Теперь управлять всеми Deep Link можно будет в одном месте.
— Появился режим «Галарея» в Compose Preview.
— Информация о Compose State теперь есть в дебагере.
— Появились стандартные шаблоны превью для Compose.
— Минимизировали эффект антивирусов на скорость сборки в Windows.
— Минимальная версия Android Gradle Plugin теперь 8.1.1.
Почитать подробнее об обновлении можно здесь.
Кто-то говорит, что обновление стоящее. Кто-то —что среда стала ещё тормознутее, а компиляция теперь происходит не за одну минуту, а за три.
А как у вас?
#android
Пять правил код-ревью, для стажёров, джунов и мидлов
Эксперт Газпромбанка делится своим опытом и рассказывает, как специалистам разного уровня стоит анализировать код.
Из статьи вы также узнаете, как оформлять описание кода, что такое nit и какие существуют универсальные принципы для всех грейдов.
#лучшиепрактики
UI Sources — изучаем инсайты дизайна мобильных приложений
Приступая к разработке, опытные мобильные разработчики уже могут представлять дизайн-паттерны и взаимодействия пользователя с приложением. Но даже им нужно освежить какие-то идеи в памяти и подсмотреть хорошие практики.
Иногда мы делимся годными инструментами для разработчиков. И сегодня именно такой день. UI Sources — база с тысячами скриншотов и видео, демонстрирующих реальные пользовательские пути в топовых приложениях.
Она поможет сократить циклы итераций, получить ценные идеи, выявить тенденции и провести бенчмаркинг с конкурентами и стандартами отрасли. Изначально инструмент бесплатный, но есть платные тарифы.
#ux #ui #ios #android #дизайн
В сети появился новый тренд: make it more
И вот один из примеров: ChatGPT попросили сделать программиста круче и круче.
На каком из фото узнали себя?
#ии #нейросети #кек
Android + iOS: организация кода приложения с использованием Kotlin Multiplatform Mobile
Пример простого приложения (счетчика) под обе мобильные платформы, использующего общий код на языке Kotlin: https://proglib.io/p/android-ios-organizaciya-koda-prilozheniya-s-ispolzovaniem-kotlin-multiplatform-mobile-2022-12-20
#ios #android #kotlin
Old but gold: разбираемся с retain cycle в iOS-разработке
Одна из самых частых проблем в разработке под iOS — retain cycle, когда как минимум 2 объекта удерживают строгие ссылки друг на друга.
Самый простой кейс — когда разработчик просто забыл сделать weak у delegate или вызвал self в escaping замыкании дочернего объекта. В реальном большом проекте очень тяжело отыскать, кто держит сильную ссылку друг на друга.
Разбираемся, как найти и исправить retain cycle с помощью инструментов Xcode: https://tproger.ru/articles/poisk-retain-cycle-s-pomoshhju-instrumentov-xcode
#ios #лучшиепрактики
Как iOS-разработчику получить оффер за рубежом
Делимся докладом Дарьи Шульгиной, в котором она делится опытом помощи в поиске работы в разных странах, в первую очередь в Европе. В докладе она отвечает на самые важные вопросы:
— Целесообразность поиска работы за рубежом.
— Факторы, влияющие на предложение работы за рубежом.
— Планирование поиска работы.
— Трудности получения приглашений на собеседование.
— Распространённые ошибки при поиске работы.
Дарья — основательница сервиса по поиску работы за рубежом AgileFluent. Если вы начинающий специалист, или специалист с опытом, и думаете о карьере за рубежом, видео будет полезно для вас.
#работа #собеседование
SberAutoTech — компания, создающая будущее в области беспилотного транспорта
Команда растёт и ищет единомышленников, разделяющих их взгляды о новой автомобильной индустрии. У ребят открыты вакансии как в продуктовых командах, так и в направлениях инженерии и бэк-офиса.
Если вы амбициозны и готовы развивать новую инфраструктуру беспилотных автомобилей, то переходите по ссылке.
Реклама.
Google планирует интегрировать ИИ-модель Gemini в Android: что надо знать разработчикам?
Gemini — это новая нейросетевая модель от Google и у неё есть три версии: Ultra, Pro и Nano. Компания утверждает, что версия модели Ultra отвечает качественнее, чем GPT-4.
Но самое интересное для нас — это версия Nano, оптимизированная для мобильных устройств. Эта модель способна выполнять задачи на мобильном процессоре, включая качественное резюмирование текстов, контекстные умные ответы и продвинутую грамматическую коррекцию.
Нас ждёт интеграция с новой системой Android AICore в Android 14. И главные вопросы для Android-разработчиков сейчас — как подготовиться к нововведениям и попасть в программу раннего доступа?
Программа раннего доступа здесь (да, это ссылка на гуглформу :)). Устройство вкратце — на картинке. Немного подробнее — в небольшой заметке: https://apptractor.ru/info/news/gemini-announce.html
#android #google #ии
Различия между MVC, MVP, MVVM, MVVM-C, и VIPER
Эти архитектурные паттерны являются одними из наиболее часто используемых при разработке приложений, как на платформах iOS, так и Android.
MVC (Model-View-Controller) — один из самых широко используемых архитектурных шаблонов. Он разделяет приложение на три основных компонента: модель (представляет данные и бизнес-логику), представление (отвечает за отображение интерфейса) и контроллер (действует как посредник между моделью и представлением).
MVP (Model-View-Presenter) похож на MVC, но имеет немного другой подход. В MVP посредником между моделью и представлением является презентер , а не контроллер. Презентер отвечает за обновление представления данными из модели и обработку пользовательского ввода и событий.
MVVM (Model-View-ViewModel) — архитектурный шаблон, набирающий популярность и используемый в приложениях со сложными пользовательскими интерфейсами. Он похож на MVP, но с добавлением модели представления (view model), которая отвечает за управление состоянием представления и за предоставление данных из модели в представление.
MVVM-C (Model-View-ViewModel-Coordinator) — это вариация MVVM, с добавлением координатора, который отвечает за управление навигацией между различными экранами или представлениями в приложении. Этот шаблон полезен для приложений, в которых есть несколько управляемых экранов или представлений.
VIPER (View-Interactor-Presenter-Entity-Router) — относительно новая архитектурный шаблон, который похож на MVC, но с добавлением нескольких новых компонентов, включая интерактор (отвечает за обработку бизнес-логики), сущность (представляет данные) и маршрутизатор (обрабатывает навигацию между различными экранами и представлениями).
#android #ios #frontend
Как использовать WebView в Android-приложениях
Это нормальная история, когда Android-приложения полагаются на веб-контент. Будь то отображение веб-страниц, интеграция веб-функций или использование серверных операций, компонент WebView играет жизненно важную роль в плавном преодолении разрыва между собственными приложениями Android и веб-технологиями.
И вот небольшой гайд с хорошими практиками, в котором автор разобрал, как эффективно работать с веб-контентом в Android с помощью WebView: https://proglib.io/p/osobennosti-ispolzovaniya-webview-v-android-prilozheniyah-2023-06-23
#android
Почему джунов в мобильной разработке не берут на работу?
Делимся видео, в котором наконец-то разобрали важную тему: почему многие компании избегают найма джунов в сфере мобильной разработки. Видео основано на реальном опыте, общении с HR-специалистами и техническими директорами.
Особенно приятно, что есть какие-то итоги для джунов, которые можно учитывать при поиске работы и устройстве в такие компании: https://www.youtube.com/watch?v=Evku6LOqJMs
#карьера #работа
Как Apple может удалить все ваши приложения из-за атаки мошенника-конкурента
История приключилась с разработчиками Sarafan Mobile Limited. Пару месяцев назад их учётную запись внезапно заблокировали и пометили для удаления. Ребята разрабатывают фото- и видеоприложения для креаторов контента. Вроде бы ничего нелегального, но не тут-то было.
Все началось с того, что в августе Apple удалила одно из приложений разработчика из-за нарушениия раздела 3.2(f) Лицензионного соглашения Apple Developer Program. Мол, учетная запись использовалась для нечестных или мошеннических действий.
Позже разработчики заметили, что кто-то размещает рекламу с их креативами для продвижения похожего приложения. Оказалось, что их приложение Rolly полностью скопировали (видео ниже). А на оригинальное приложение накручивались фэйковые 5-звёздочные отзывы. Скорее всего, это и привело к блокировке. Но несмотря на все доводы и доработки, Apple отклонила все аппеляции, удалила учетную запись и все приложения.
Студия разработки неплохо зарабатывала с этих приложений. По их словам, за три месяца блокировки Apple лишила их дохода в $ 108 878. Конечно, сейчас ребята призывают к помощи и поддержке всяких петиций.
Сложно сказать, как было на самом деле, но случай интересный. Если история полностью правдива, то злоумышленники даже такими глупыми методами могут просто угнать у вас бизнес. Будьте аккуратны и внимательны не только к своим действиям, но и действиям конкурентов.
#apple #ios
Как работать с cookie на Android
Cookie — удобный механизм для передачи служебной информации сразу во все http-запросы. Но с ним нужно быть всегда настороже. Например: не забывать про синхронизацию между CookieStore’ами; помнить про протухание и привязку к доменам; следить за их изменением и оповещать всех интересантов.
Технические и юридические моменты работы с cookie в Android-приложениях рассмотрели в статье: https://habr.com/ru/companies/ozontech/articles/777236/
#android
Подробный гайд, как на самом деле использовать ChatGPT в доработке iOS-приложения
Сейчас отовсюду слышно, что ChatGPT помогает в разработке. Но как именно?
Наглядная статья, в которой автор показал, как использовать обновленный ChatGPT-4 в решении ежедневных задач: работе с терминалом, анализе кода и создании новых фичей в приложении. И даже попробовал использовать нейросеть как надежного помощника в решении конфликтов с констрейнтами.
Если хотели начать использовать ChatGPT для разработки по-максимуму, эта статья для вас: https://habr.com/ru/companies/lamoda/articles/775162/
#ios #ии #лучшиепрактики
Идеи проектов для начинающих iOS-разработчиков
1. Flappy Fly Bird — проект с открытым исходным кодом по мотивам классики аркадного жанра на Swift 5.5, GameplayKit, SpriteKit и iOS 12.
2. CoronaTracker — приложение для отслеживания COVID-19 для iOS и macOS с картами и диаграммами. Данные обновляется автоматически по городам и странам.
3. Coffee-Ratio — приложение создано для любителей кофе и помогает пользователю рассчитать соотношение воды и кофе для каждой порции.
#ios #петпроект
Ему еще только предстоит узнать, что это одновременно самая лучшая и самая худшая документация
Читать полностью…Допустим, вы оказались в самом начале своего пути разработчика.
Какую одну самую важную книгу вы бы посоветовали себе прочесть?
#обсуждение
Если пропустили новость, то Ян «Hixie» Хиксон, фаундер и техлид Flutter, покинул Google
Новость грустная. Но что она значит на самом деле? Ведь, как сказал сам Hixie, OpenSource тем и хорош, что даже в этом случае он сможет продолжать работать над Flutter.
Скорее всего, последствия печальны не столько для Flutter сколько для Google. Разработчик из Apple Тим Снит подтвердил, что последняя неделя была сложной для команды Flutter, а в Google по непонятной причине не понимают ценность этого проекта и необходимость сохранения ресурсов его разработчиков.
«Любой негатив, который последнее время публикуют про ситуацию в команде Flutter, исходит от людей, которые хотели, чтобы их старшие руководители лучше распоряжались этим удивительным наследием» — считает разработчик.
Он так же рассказал: «Дело не в зарплате. Это разработчики, которые считают эту работу своим призванием. Это не взаимозаменяемые ресурсы, которые можно перераспределять по своему усмотрению. Я надеюсь, что Google наконец осознает, какими ценными активами она обладает, пока не стало слишком поздно. Часы тикают».
#flutter #google