Рубрика «mobile development»

Все, что вы хотели знать о SwiftUI, но боялись спросить - 1

Привет! Меня зовут Ренат, я разрабатываю сервис по аналитике подписок в iOS – Apphud.

Как вы знаете, Apple на WWDC 2019 представила свой новый фреймворк SwiftUI, который призван в будущем заменить (или нет?) привычный нам UIKit. SwiftUI позволяет описывать интерфейс приложений в декларативном стиле и сильно сокращает количество кода.

Apple уже представила несколько интересных туториалов на английском языке с множеством примеров. Я же постараюсь рассказать о новом фреймворке в форме вопросов и ответов. Итак, поехали.Читать полностью »

Гармония скриптов внутри Android приложения - 1

Думаю, многие читатели хаба по android-разработке слышали, что Java позволяет в рантайме через ClassLoader модифицировать dex уже установленного приложения. С помощью этого можно в рантайме подгружать скомпилированный код и использовать его. Но Google к таким махинациям относится, мягко говоря, не слишком лояльно и банит уличённые в подобном приложения.

Однако есть альтернативные способы загрузки и выполнения скриптов на мобильном устройстве. За подробностями под кат!
Читать полностью »

В конце февраля мы запустили новый формат встреч Android-разработчиков Kaspersky Mobile Talks. Основное отличие от обычных митапов — здесь вместо сотни слушателей и красивых презентаций на несколько различных тем собрались «бывалые» разработчики, чтобы обсудить всего лишь одну тему: как они реализуют многомодульность в своих приложениях, с какими проблемами сталкиваются, и как их решают.

Kaspersky Mobile Talks #1. Многомодульность - 1

Читать полностью »

We’re currently experimenting with Flutter while developing our side project for step challenges with colleagues. This side project should also be considered as a playground, where we can check if we can use Flutter in more serious projects. That’s why we want to use some approaches there that can look like an over-engineering for such a small project.

So one of the first questions was what can we use for dependency injection. A quick search in the internet revealed 2 libraries with positive reviews: get_it and kiwi. As get_it turned out to be a Service Locator (and I’m not a fan of this pattern), I was going to play with kiwi, which looked more promising, but then I’ve found another one library: inject.dart. It is heavily inspired by Dagger library, and as we use the latest one in our other Android projects, I’ve decided to dig into it.

Читать полностью »

Всем привет! Меня зовут Женя Суворов, я руководитель команды мобильной архитектуры в Авито. 4 апреля на нашем ютуб-канале и в социальных сетях мы проведем прямой эфир и обсудим, как в iOS-разработке удержать качество продукта на высоком уровне даже при сильном масштабировании проекта и команды.

Поговорим на разные темы: как понять, что твой проект вырос, и нужно менять подходы к разработке, какие сложности возникают, как правильно организовать командную работу, коснемся архитектуры и кодовой базы, сравним метрики разработки в маленьких и крупных проектах, а дальше — библиотеки, фреймворки, языки — глубже и интереснее. Сами не знаем, куда заведёт разговор. В дискуссии будут участвовать эксперты из Яндекса, Сбербанка, HeadHunter и Авито.

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

Прямой эфир: как обуздать iOS-разработку в больших командах - 1Читать полностью »

Как реализуется Retentioneering в App in the Air - 1

Удержать пользователя в мобильном приложении – это целая наука. Ее основы в нашей статье на VC.ru описал автор курса Growth Hacking: аналитика мобильного приложения Максим Годзи, руководитель подразделения Машинного обучения в App in the Air. Максим рассказывает о разработанных в компании инструментах на примере работы по анализу и оптимизации мобильного приложения. Такой системный подход к совершенствованию продукта, разработанный в App in the Air, называют Retentioneering. Использовать эти инструменты вы можете и в своем продукте: часть из них есть в свободном доступе на GitHub.
Читать полностью »

Gotta Go Fast: Building for Speed in iOS. Part 2 - 1

Sometimes you can find yourself in a situation where your app cannot perform well. So here are some instruments you can use and best practices you can implement to make things better.Читать полностью »

Привет! Представляем вашему вниманию перевод статьи "Building Layouts".

Сегодня мы узнаем:

  • Как работают механики построения UI на Flutter
  • Как верстать экраны горизонтально и вертикально
  • Как сверстать экран, используя Flutter

Результатом сегодняшнего урока будет следующий сверстанный экран

image

Читать полностью »

AppsConf Rises - 1

AppsConf — конференция для мобильных разработчиков, на которой можно:

  • а) услышать о новинках в iOS и Android;
  • б) обсудить лучшие практики мобильной разработки;
  • в) найти решения актуальных проблем;
  • г) до хрипоты поспорить о хайповых технологиях;
  • д) познакомиться и задать вопросы GDE и iOS-гуру;
  • е) поделиться достижениями;
  • ж) завести рабочие контакты с самыми крутыми разработчиками в России.

Все это вместе делает AppsConf самой полезной конференцией по мобильной разработке, причем не только в России. Именно так у нас получилось в октябре, и мы собираемся повторить в 2019 уже 22 и 23 апреля.

Что будет нового, и каких интересных спикеров мы уже заманили, напишу дальше. Но сначала немного отчетной информации этого года, начиная с прикольного ролика.

Читать полностью »

На поводу у трендов, или движение навстречу RxJava и LiveData - 1

На дворе 2018 год. Всё чаще встречаются слова RxJava и LiveData. Но если вдруг так случилось, что в вашем приложении до сих пор балом правят старомодные решения вроде библиотеки android-priority-jobqueue или AsyncTask (да, бывает и так), то эта статья специально для вас. Я разделяю эти подходы, исходя из заложенной в них философии. Первый предполагает некоторую зависимость выполнения работы от отображения, второй — выполнение задачи, при котором View слушает её и она не прерывается в зависимости от событий жизненного цикла (например, при повороте экрана). Под катом я предлагаю рассмотреть миграцию на связку RxJava и LiveData для обоих подходов.
Читать полностью »