Рубрика «разработка мобильных приложений» - 68

Строим систему реактивных компонентов с помощью Kotlin - 1

Всем привет! Меня зовут Анатолий Варивончик, я Android-разработчик Badoo. Сегодня я поделюсь с вами переводом второй части статьи моего коллеги Zsolt Kocsi о реализации MVI, которую мы ежедневно используем в процессе разработки. Первая часть здесь.

Чего мы хотим и как мы это сделаем

В первой части статьи мы познакомились с Features, центральными элементами MVICore, которые можно переиспользовать. Они могут обладать максимально простой структурой и включать всего один Reducer, а могут стать полнофункциональным средством для управления асинхронными задачами, событиями и многим другим.

Каждая Feature отслеживаема — есть возможность подписаться на изменения её состояния и получать уведомления об этом. При этом Feature можно подписать на источник ввода. И в этом есть смысл, ведь с включением Rx в кодовую базу у нас и так появилось множество наблюдаемых объектов и подписок на самых разных уровнях.

Именно в связи с увеличением количества реактивных компонентов пришло время поразмышлять о том, что мы имеем и можно ли сделать систему ещё лучше.
Читать полностью »

Добрый день! Представляю вашему вниманию перевод статьи про базовые основы безопасности конфиденциальных данных в iOS приложениях «Application Security Musts for every iOS App» автора Arlind Aliu.

Безопасность приложений – один из самых важных аспектов разработки программного обеспечения. Пользователи приложений надеются, что информация, которую они предоставляют, надежно защищена. Поэтому нельзя так просто предоставлять кому-либо конфиденциальную информацию.

К счастью, в этой статье мы обсудим ошибки, которые допускают разработчики в своих приложениях, а также способы их устранения.
Продолжение под катом.
Читать полностью »

Думаю, многим в ходе разработке игры для iOS приходилось сталкиваться с тем, что возникает необходимость использовать тот или иной нативный функционал. Касаемо Unity3D, в данном вопросе может возникать очень много проблем: для того, чтобы внедрить какую-то фичу, приходится смотреть в сторону нативных плагинов, написанных на Objective-C. Кто-то в этот момент сразу отчаивается и забрасывает идею. Кто-то ищет готовые решения в AssetStore или на форумах, надеясь на то, что готовое решение уже существует. Если же готовых решений не существует, то самые стойкие из нас не видят другого выхода, кроме как погрузиться в пучину iOS программирования и взаимодействия Unity3D с Objective-C кодом.

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

  • iOS — абсолютно незнакомая и обособленная экосистема, развивающаяся своим путем. Как минимум придется потратить довольно много времени, чтобы понять как можно подобраться к приложению, и где в недрах автоматически сгенерированного XCode проекта находится код взаимодействия Unity3D движка c нативной составляющей приложения.
  • Objective-C — довольно обособленный и мало на что похожий язык программирования. А когда речь заходит о взаимодействии с C++ кодом Unity3D приложения, то на сцену выходит «диалект» этого языка, под названием Objective-C++. Информации о нем совсем немного, большая ее часть древняя и архивная.
  • Сам протокол взаимодействия Unity3D с iOS приложением довольно скудно описан. Расчитывать стоит исключительно на туториалы энтузиастов в сети, которые пишут как разработать простейший нативный плагин. Мало кто при этом затрагивает более глубокие вопросы и проблемы, возникающие при потребности сделать что-то сложное.

Тех, кто хочет узнать о механизмах взаимодействия Unity3D с iOS приложением, прошу под кат.
Читать полностью »

Когда-то я думала, что для того, чтобы запустить своё приложение достаточно написать код. Чуть позже я узнала, что неплохо дополнять код дизайном. Ещё позже я поняла, что необходимо искать аудиторию и продвигать ей свой продукт. Но всё это может быть лишним, если не следовать гайдлайнам. Ниже я расскажу о своём первом опыте самостоятельной разработки и почему моё приложение не увидит пользователей.

App Store не позвонит. Или как я сделала своё приложение, но оно не попадёт к пользователям - 1

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

В новом дайджесте лучшие смешные и грустные истории от PapaBubaDiop, серверный Swift и многогранная MVI, игровые механики в Excel и компьютеры, не умеющие считать. Добро пожаловать!

Дайджест интересных материалов для мобильного разработчика #275 (12 — 18 ноября) - 1Читать полностью »

В предыдущей статье я подробно рассказал о нашем опыте создания веб-сервиса/мобильного приложения для ведения личного дневника. Актуальная версия приложения (минимальная работоспособная версия уже выложена в Google Play) разрабатывается на React Native, и вот на нем мы и остановимся подробно сегодня.

Рассказываем о собственном опыте работы с фреймворком, способах расширения функционала, «подводных камнях» (куда ж без них!) и как мы их обошли.

О фреймворке в целом

Немного о виновнике торжества — React Native. Он все-таки хорош!

Для тех, кто в достаточной степени знает JavaScript и тем более NodeJS — он очень хорош. Если же есть опыт с React, ну или хотя бы есть понимание ее идеи, механизма — он просто великолепен!

Главное, что на выходе получается действительно нативное приложение. Расширения и плагины покрывают практически 99% типовых задач. Оставшийся процент при острой необходимости можно дописать на родных языках (java, object-c) и подключить к React Native приложению.

Но хватит про плюсы, от них толку ноль, хоть список и будет внушительным. Все плюшки и вкусности бессмысленны, если приложение не запускается, а это первое чем нас «порадовал» React Native.

Сначала ему не понравилась версия NodeJS. Потом версия npm. Потом версия Android SDK, потом версия Android tools, потом… Писать про то, как все проблемы решились, смысла нет, ибо с того момента все вышеперечисленное ПО обновило свои версии и инструкции будут неактуальны.

Просто знайте: узкое место React Native — среда сборки. Будьте готовы к штудированию google, чтению форумов и stackoverflow. На развертывание в итоге потратили: Ubuntu 12.6 — 3 дня, Win10 — 2 дня. Как ни странно, на «винде» все оказалось проще, ну, или просто на ubuntu «шишек набили» и уже понимали, что и куда подсовывать.

На заметку, вдруг кому пригодится: код, представленный ниже, решил все проблемы с совместимостью версий sdk у дополнений при компиляции проекта.
Читать полностью »

«Server-side Swift недооценён»: интервью с Полом Хадсоном - 1

Глядя на признанных IT-экспертов — с их подробными книгами, уверенными докладами и стройными блог-постами — можно ощутить их какими-то особенными существами, которые знают в своей области вообще всё, никогда не волнуются перед выходом на сцену и родились с клавиатурой в руках. Но стоит поговорить с таким человеком, как обнаруживаешь, что при своих огромных знаниях он вполне себе живой.

Пол Хадсон известен как эксперт в Swift и iOS. Сайт Hacking with Swift, целый ряд книг, доклады на конференциях вроде dotSwift и SwiftConf, твиттер-аккаунт с 17 000 фолловеров, YouTube-канал — это всё он. И мы с ним поговорили: от того, с чего он начинал, до советов, которые он может дать начинающим спикерам/блогерам.Читать полностью »

Только через смех можно рассказывать, как плоды долгой и упорной работы распространяются по всем компьютерам страны, но не приносят ни капли дохода. Только улыбка поможет принять хорошее, честное предложение распределения прибыли 1 к 12, где 1 — разработчику, а остальное агрегатору. И трудно слегка не загрустить, слушая о том удивительном времени абсолютно пустого рынка мобильных игр и почти азартном энтузиазме разработчиков. И, наверное, только у Вадима Башурова (PapaBubaDiop) такой длинный путь и невероятный опыт, чтобы иметь в запасе множество невыдуманных смешных и грустных историй.

Так уж повезло, что по случаю тридцатилетнего юбилея своей первой игры, Вадим пришел на Apps Conf. Да, когда вышла самая популярная игра того времени, многие из нас еще не родились, а ныне уважаемые Head of mobile пешком под стол ходили. Но каждый, кто в начале 90-х видел компьютер, видел и игру «Поле Чудес» и думал, что же такое Арзамас.

Смешные и грустные истории про разработку компьютерных игр - 1

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

Стоит ли ждать Android на iOS от Parallels? - 1

Спойлер: «Нет». На днях на одном из форумов довелось увидеть гениальный вопрос от какой-то девушки: «У меня iPhone с операционной системой Android 4.2.1. Могу ли я поменять эту операционную систему на iOS?». Форумчане саркастически посоветовали ей купить плату от iPhone, процессор, видеокарту и настоящий смартфон от Apple.Читать полностью »

Современная MVI-архитектура на базе Kotlin. Часть 1 - 1

За последние два года Android-разработчики в Badoo прошли длинный тернистый путь от MVP к совершенно иному подходу к архитектуре приложений. Мы с ANublo хотим поделиться переводом статьи нашего коллеги Zsolt Kocsi, описывающую проблемы, с которыми мы столкнулись, и их решение.

Это первая из двух статей, посвящённых разработке современной MVI-архитектуры на Kotlin.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js