Обновить
66

iOS *

Мобильная ОС компании Apple

Сначала показывать
Порог рейтинга
Уровень сложности

Дайджест интересных материалов для мобильного разработчика #85 (22-28 декабря)

Время на прочтение3 мин
Охват и читатели15K
Последний дайджест в уходящем году и мы подводим итоги iOS- и Android-разработки, вспоминаем, какие посты были самыми популярными на Хабре, планируем 2015 год. С наступающим! Хороших вам приложений и интересных задач!

Читать дальше →

Архитектура мобильного клиент-серверного приложения

Время на прочтение33 мин
Охват и читатели144K

К добавлению внешнего сервера рано или поздно приходит любой сложный проект. Причины, при этом, бывают совершенно различные. Одни, загружают дополнительные сведения из сети, другие, синхронизируют данные между клиентскими устройствами, третьи- переносят логику выполнения приложения на сторону сервера. Как правило, к последним относятся большинство «деловых» приложений. По мере отхода от парадигмы «песочницы», в которой все действия выполняются только в рамках исходной системы, логика выполнения процессов переплетается, сплетается, завязывается узлами настолько, что становится трудно понять, что является исходной точкой входа в процесс приложения. В этом момент, на первое место выходит уже не функциональные свойства самого приложения, а его архитектура, и, как следствие, возможности к масштабированию.
Заложенный фундамент позволяет либо создать величественный архитектурный ансамбль, либо «накурнож» — избушку на куриных ножках, которая рассыпается от одного толчка «доброго молодца» коих, за время своего существования повидала видимо — невидимо, потому что, глядя на множественные строительные дефекты заказчик склонен менять не исходный проект, а команду строителей.
Планирование — ключ к успеху проекта, но, именно на него выделяется заказчиком минимальный объем времени. Строительные паттерны — туз в рукаве разработчика, который покрывает неблагоприятные комбинации где время — оказывается решающим фактором. Взятые за основу работающие решения позволяют сделать быстрый старт, чтоб перейти к задачам, кажущиеся заказчику наиболее актуальными (как-то покраска дымоходной трубы, на еще не возведенной крыше).
В этой статье я постараюсь изложить принцип построение масштабируемой системы для мобильных устройств, покрывающей 90-95% клиент-серверных приложений, и обеспечивающей максимальное отдаление от сакраментального «накурножа».
Читать дальше →

Как скрэшить любое приложение на айфоне, и как этого не допустить

Время на прочтение4 мин
Охват и читатели31K
image

Однажды мы, в Surfingbird, нашли странную ошибку, из-за которой приложение стабильно крэшилось. Позже оказалось, что почти любое приложение можно довольно просто скрэшить (даже приложения, написанные самой Apple). О том, что же это за ошибка и как её обойти, мы расскажем в статье.
Читать дальше →

Локализация для Бразилии: советы и рекомендации

Время на прочтение5 мин
Охват и читатели9.7K
Конкурентный рынок мобильных приложений Европы и США стабильно растет, а значит, растут и расходы на привлечение новых пользователей. Естественно, что в этой ситуации в центре внимания оказываются самые быстрорастущие игроки мирового рынка мобильных технологий: Китай, Юго-Восточная Азия, Латинская Америка, Россия, Восточная Европа, Ближний Восток и Южная Африка.

Один из наиболее интересных рынков для экспансии – Бразилия. Однако, чтобы завовевать его, необходимо понимать тонкости процесса локализации для этой страны. Мы в Alconost, например, часто сталкиваемся с тем, что разработчики выходят на бразильский рынок с европейской португальской версией продукта или приглашают европейских португальских переводчиков переводить тексты, предназначенные для бразильских пользователей. Так что когда мы нашли дельную статью об особенностях локализации для бразильского рынка, то поспешили перевести ее на русский.


Читать дальше →

Архитектурный дизайн мобильных приложений

Время на прочтение9 мин
Охват и читатели99K
Признак плохого дизайна №1:
Наличие объекта-«бога» с именем, содержащим «Manager», «Processor» или «API»


Ведущий iOS-разработчик Redmadrobot Егор BepTep Тафланиди — о том, как добиться стройного архитектурного дизайна мобильного приложения, используя классические шаблоны проектирования и логическое разделение исходного кода на модули.

Читать дальше →

Тренды iOS–разработки 2014 года

Время на прочтение3 мин
Охват и читатели27K

Подходит к концу 2014 год, и сейчас самое время подвести итоги и выделить ключевые тренды в iOS разработке.

Functional Reactive Programming


Благодаря фреймворку ReactiveCocoa, новая парадигма программирования все чаще используется среди iOS разработчиков.

Отказоустойчивость, отзывчивость, ориентированность на события и масштабируемость — вот четыре принципа реактивного программирования. Подробности можете узнать в реактивном манифесте (перевод на Хабре).

Для себя я выделил следующие преимущества реактивного подхода:
  • loose coupling — потоки события позволяют уменьшить связанность между различными частями кода;
  • explicit state — состояние программы определяется набором событий, и поэтому им становится легко управлять.

В качестве альтернативы реактивному подходу рекомендую посмотреть на Futures. Есть как минимум два интересных фреймворка: PromiseKit и CollapsingFutures
Читать дальше →

Auto Layout с переменным набором элементов

Время на прочтение3 мин
Охват и читатели11K
В Xcode 5 компания Apple представила новую систему построения интерфейсов приложений для iOS (6+) и MAC OS X (v10.7 +) “Auto Layout” (AL) призванную заменить устаревшую “Springs & Struts” (S&S). Основываясь на задании правил (Constraints) определяющих размер и положение интерфейсных элементов, AL предоставляет значительно более широкие возможности чем S&S. Тем не менее, слабой стороной AL (помимо большей сложности) является работа с переменными наборами элементов. Сама по себе система AL вообще не поддерживает опциональные элементы, но есть способы обойти это ограничение.
Читать дальше →

Как собрать собственный фреймворк для iOS

Время на прочтение9 мин
Охват и читатели18K
Среди задач мобильного разработчика, помимо самой частой (написания, собственно, приложений) периодически появляется и такая, как создание sdk.

Примерами такой задачи может быть создание sdk, использующего REST API какого-либо сервиса (реклама, аналитика, погода), библиотека реализаций алгоритмов, обработка изображений… Список практически неограничен.

Ошибки, допущенные в таком продукте, исправлять гораздо сложнее, чем при разработке приложений. В случае с приложением достаточно обновить его в AppStore, дождаться прохождения модерации и обновления пользователем. В случае же с sdk цепочка прирастает дополнительным шагом — дождаться его обновления разработчиком.

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

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

image

Читать дальше →

6 игр за 6 недель — игра пятая

Время на прочтение2 мин
Охват и читатели28K
-Холмс, как вы узнали, что я пхп-специалист?
-Элементарно, Ватсон, у вас слон на свитере.

image

Игра пятая — Пляшущие человечки. Создана по мотивам рассказа Конан-Дойля The adventure of dancing men.

Игра (на момент публикации статьи) не прошла модерацию в магазине. Я объясню почему. Сюжет игры классический — берется 10 строк текста из бессмертного романа А.С. и одинаковые буквы меняются на одинаковые символы. Лингвисты мгновенно расшифровывают. Порог вхождения — высокий. В результате месяца игры я наизусть выучил Евгения Онегина.

Впрочем, картинку типа этой — расшифруют все, кто говорит по-русски.

image
Рисунок 1. Слово из трех букв

Это слово — либо КАК, либо ИЛИ, либо ОНО, либо ТОТ. Конечно, любители немецкого скажут, что это второе слово из фразы ХЕНДЕ ХОХ. Но нет, Пушкин не знал немецкого.

Вернусь к вопросу о непрошедшей проверке.
На экране с очередной загадкой всегда горит строка подсказки — в ней все символы выстроены в порядке убывания их наличия в тексте. Самые распространенные буквы обычно Е Н или О.

image
Рисунок 2. Строка подсказки

Так вот, в этой строке подсказки затаилась крамола. Одна из картинок не прошла модерацию.
Угадайте какая?
В комментариях я отвечу на этот вопрос, первому угадавшему — приз, наушники от iPhone 6 Plus.

UPD.
Выиграл мистер sad.

Читать дальше →

Urban Airship закрывает бесплатную лицензию

Время на прочтение2 мин
Охват и читатели6.9K
Совсем скоро — 31 декабря, Новый год. Но вместе с этим и закроектся бесплатная Developer Edition в системе рассылки Push-уведомлений Urban Airship. Компания предлагает либо купить платную подписку, либо уйти к другим push-провайдерам.

Давайте посмотрим, какие у нас есть варианты.

image
Читать дальше →

Дайджест интересных материалов для мобильного разработчика #84 (15-21 декабря)

Время на прочтение3 мин
Охват и читатели13K
Разработка мобильных приложений не останавливается даже во время экономических пертурбаций. PapaBubaDiop, например, рассказывает, как можно сделать шесть игр за шесть недель, выходит AppCode 3.1 и несколько других инструментов, упрощается работа с Material design. Это и многое другое – в еженедельном дайджесте.

Читать дальше →

Как мы увеличили отзывчивость приложения

Время на прочтение3 мин
Охват и читатели21K


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

6 игр за 6 недель — игра вторая

Время на прочтение2 мин
Охват и читатели21K
6 ноября я решил выпустить 6 игр за 6 недель.
Игра вторая — 4 комнаты.

image

О-о. Прежде всего скажу, что я — не аквамен!
Так вот. В последнее время в вашей школе ходят гнусные слухи, что разработка под iOS бесперспективна для волков-одиночек.
Что? Это — не так!

Да, iPhone 6 стал стоить дороже Лады-Калины.
Да, доля iOS устройств в мире упала ниже 14%.
Да, полки магазина завалены 2 000 000 приложений.
Так вот, хейтеры, тогда почему…
Минуточку!
Сучка, напомни почему ты не хоббит?
А-а! Так-так-так! Понял. Чмоки. Пока.


Тогда почему каждый год появляется шлягер, взрывающий iPhone мир?
Читать дальше →

Ближайшие события

6 игр за 6 недель — неделя первая

Время на прочтение2 мин
Охват и читатели25K
6 ноября я решил выпустить 6 новых игр за 6 недель.

image

Если Вы еще не выпустили ни одной игрушки в AppStore, то ноябрь, декабрь — самые лучшие месяцы для этого события.
В этом году Вы, конечно, не успеете, но в 2015-ом вполне.

Я — успел.

Были высказаны следующие ограничения — 1) никаких Unity, 2) никаких клонов известных игр, 3) простейшее управление, 4) сложнейшее решение.
Игры получились интересные для меня, а значит местные математики одобрят. Разумеется, большинству игроков они окажутся не по зубам, поэтому заработка не принесут. Но какие-то доллары упадут, финансовый отчет за декабрь будет представлен в январе.
Читать дальше →

Мобильная игра на Unity. Первый блин…

Время на прочтение4 мин
Охват и читатели59K
image

После завершения создания игры-головоломки на Unity и выпуска ее на Google Play и AppStore, появилось желание поделиться опытом и впечатлениями. И получить конструктивные замечания и предложения, если таковые возникнут

Читать дальше →

AppCode 3.1 и Swift: быстрое исполнение ваших блестящих идей

Время на прочтение4 мин
Охват и читатели15K
Привет, Хабр!

У нас для вас отличные новости — в новой версии нашей IDE для разработчиков под iOS/OS X — AppCode 3.1 — появилась долгожданная поддержка языка Swift, и даже Rename refactoring для кода на этом языке.


Читать дальше →

Поддержка мобильных продуктов: задачи, процессы, инструментарий

Время на прочтение8 мин
Охват и читатели44K
Долгий цикл производства (time to market) — зло, тем более в сфере мобильных технологий, где операционные системы обновляются каждый год, а новые устройства появляются раз в два-три месяца. Поэтому не нужно бояться выходить в стор с простым продуктом с минимумом функционала. Работа над приложениями должна идти в формате непрерывного улучшения короткими итерациями (не более месяца на обновления) и с хорошо налаженной обратной связью. Другими словами, навороченным приложение должно становиться постепенно.

Директор департамента поддержки и развития мобильных приложений Redmadrobot Александр Алехин (@alekhinsasha) делится опытом организации процессов.

Читать дальше →

Дайджест интересных материалов для мобильного разработчика #83 (8-14 декабря)

Время на прочтение4 мин
Охват и читатели22K
В новом дайджесте интересная статья про создание World of Tanks Blitz, первый взгляд на Apple Watch SDK, выход Android Studio 1.0, несколько новостей о Google Cardboard, навигация в помещениях с iBeacon и множество других полезных материалов.

Читать дальше →

Трилатерация c помощью iBeacon

Время на прочтение2 мин
Охват и читатели14K
В конце октября в Москве прошла конференция мобильных разработчиков #MBLTDev, на которой я рассказывал про трилатерацию с помощью iBeacon.

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


Презентация
Читать дальше →

Как повысить позиции в американском App Store при помощи испанских кейвордов

Время на прочтение5 мин
Охват и читатели7.4K
Американский App Store – самый большой из существующих. Конкуренция здесь очень велика, из-за чего продвигать свои приложения оказывается сложно и дорого.

Однако есть трюк, который позволит улучшить позиции приложения в американском App Store, используя кейворды для испанской версии App Store. Мы в Alconost перевели целую статью об этом – добро пожаловать под кат.


Читать дальше →