Рубрика «разработка под iOS» - 129

Функциональное программирование в Swift. Начало - 1

Предисловие переводчика.

Отмечая окончание 2014 года, известная Swift группа SLUG из Сан-Франциско выбрала 5 наиболее популярных Swift видео за 2014 с организованных ею встреч. И среди них оказалось выступление Chris Eidhof «Функциональное программирование в Swift».
Сейчас Chris Eidhof — известная личность в Swift сообществе, он — автор недавно вышедшей книги «Functional programming in Swift», один из создателей журнала objc.io, организатор конференции «Functional Swift Conference», прошедшей 6-го декабря в Бруклине и будущей конференции UIKonf.
Но я открыла его, когда он, один из первых, опубликовал очень простую элегантную статью об эффективности функционального подхода в Swift к JSON парсингу.
В этой статье нет недоступных для понимания концепций, никаких мистических математических «химер» типа «Монада, Функтор, Аппликативный функтор», на которых Haskell программисты клянутся перед оставшимся миром, закатывая глаза.
Там нет и таких нововведений Swift, как дженерики (generics) и «вывод типа» (type inference).
Если вы хотите плавно «въехать» в функциональное программирование в Swift, то вы должны познакомиться с его статьей «Parsing JSON in Swift» и выступлением на SLUG «Functional Programming in Swift».
Читать полностью »

image

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

Кроме того мне нравится хрюканье. Все любят похрюкать. Особенно на Новый Год. Потому я взял смелость взять из Angry Birds пару свинских звуков и вставить их в свою поделку.

Как это сделать за 1 минуту — читайте здесь и сейчас. Хрю!
Читать полностью »

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

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

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

image

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

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

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

Локализация для Бразилии: советы и рекомендации - 1
Читать полностью »

Признак плохого дизайна N1:
Наличие объекта-«бога» с именем, содержащим «Manager», «Processor» или «API»

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

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

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

Functional Reactive Programming

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

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

Для себя я выделил следующие преимущества реактивного подхода:

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

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

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

В ходе написания курсовой работы на заданную тему я столкнулся с проблемой поиска информации. Большинство ресурсов было посвящено определенным фреймворкам/средам разработки, в результате чего было решено оформить итоговое содержание курсовой в виде статьи на хабре. Это статья направлена в первую очередь на людей, которые не разбираются в данном виде ПО.
Читать полностью »


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