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

Перед тем, как расскажу о впечатлениях от игры World of Tanks Blitz, не могу удержаться от небольшого вступления.

Третьего дня мне написали из пресс-службы Wargaming.net и строго поинтересовались – почему в журнале «Мир ПК» давно не было публикаций об игре World of Tanks? Я осторожно ответил, что, мол, поводов не обнаруживалось. Игра интересная, мы ее любим. Но это же не повод писать о ней минимум раз в месяц. Надо и для других хороших продуктов площади выделять.

В ответ мне не менее строго указали, что повод всегда найти можно. Например, написать о том, как компания Wargaming.net выступает за патриотизм и восстановление исторических ценностей.

World of Tanks Blitz: Игрушечная игрушкаЧитать полностью »

Обзор 7 самых популярных кроссплатформенных мобильных фреймворков
На работе меня попросили сделать сравнительную характеристику нескольких продуктов для создания кроссплатформенных мобильных приложений: Appcelerator Titanium, Kony Platform, Adobe PhoneGap, IBM Worklight, Telerik Platform, Verivo Akula, Xamarin. Потратил немало времени, поэтому решил, что лучше поделиться с читателим полученными данными, вдруг кому покажется полезным. Сразу скажу, что кроме PhoneGap я до этого не сталкивался и не работал ни с каким из этих фреймворков, поэтому уверен, что что-то упустил, где-то, возможно, не так понял, а в чем-то оказался не прав. Но в комментариях надеюсь услышать ваше мнение и исправить недочеты.

В конце статьи поместил несколько опросов, которые помогут понять популярность и рейтинг этих фреймворков.
Читать полностью »

image

В карточные игры играли и будут играть. За тысячелетия картежники испробовали сотни игр и оставили себе десяток. На века. Если уподобиться литературоведам, то любые карточные игры сведутся к трем сюжетам — покер, преферанс и джин. Например, дурак — это упрощенный преферанс, этакие козырные распасы.

Не знаю как сейчас, а мы в школе и на мех-мате рубились в преферанс днями и ночами. Некоторые умудрялись играть на лекциях в аудитории 16-24. Там удобно. Ряды — как в цирке. Потому МСС многие не знают.
Девушки предпочитали играть в Кинга, дамский преферанс. Хорошая семейная игра.

Легко алгоритмизуется, легко программируется. Как только у меня появился настольный PC и компилятор Turbo Pascal, я первым делом написал компьютерный вариант этой игры. Был 1991 год, падали кленовые листья. За соперников играла машина i286, классический минимакс реализовать не удалось. Программа честно просчитывала оптимальный ответ при глубине 3 хода. При глубине хода 4, компьютер периодически уходил в задумчивость на 30 минут, что не позволяли себе даже самые тупые живые игроки. Вход в игру я зашифровал 5-ти значным паролем (тогда это было модно). Пароль — индекс подписки популярной газеты Комсомольская Правда, причем подсказка была прямо на экране ввода пароля.
Пару раз мне звонили журналисты Комсомолки с целью рассказать про игру, но я отказывался. Не потому что скромный, а потому что туалетной бумаги в то время не было, народ использовал газеты. Понятно ведь, куда уйдет моя статья…

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

Возьмём за основу статью Знакомьтесь, Swift!, где показано как сделать простое приложение на Swift, и добавим туда такие известные и полезные штуки как pull to refresh и infinite scrolling используя встроенные возможности языка. Чтобы было еще интереснее, добавим немного асинхронности, иначе приложение будет каждый раз замирать на время обновления.

Реализуем pull to refresh и infinite scrolling на Swift
Читать полностью »

Работа c JSON в Swift
Покажите мне разработчика, которому еще ни разу не приходилось работать с JSON. За счет своей простоты, гибкости и наглядности этот формат представления данных набрал большую популярность и сейчас используется повсеместно. Вот и я во время экспериментов со Swift быстро столкнулся с необходимостью разбора JSON-данных.

Собственно с задачей прямого и обратного преобразования JSON из текстового представления в объектную модель отлично справляется стандартный Foundation API – NSJSONSerialization. В Apple проделали серьезную работу для обеспечения прямого и обратного взаимодействия Swift и Objective-C кода (Using Swift with Cocoa and Objective-C), поэтому использование привычных Cocoa API не только возможно на практике, но и удобно и не выглядит неестественно:

let jsonString = "{"name":"John","age":32,"phoneNumbers":[{"type":"home","number":"212 555-1234"}]}"
let jsonData = jsonString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
let jsonObject: AnyObject! = NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions(0), error: nil)

Но работать с полученным результатом в статически типизированном Swift неудобно – требуется цепочка проверок и приведений типов для получения любого значения. Далее я рассмотрю варианты решения этой проблемы, а заодно мы познакомимся с некоторыми особенностями Swift.
Читать полностью »

Особенности SwiftВ рамках Mobile Camp Яндекса наш коллега Денис Лебедев представил доклад о новом языке программирования Swift. В своем докладе он затронул особенности взаимодействия с Objective-C, рассказал про фичи языка, которые показались ему наиболее интересными. А также про то куда сходить на Github, и какие репозитории посмотреть, чтобы понять, что со Swift можно делать в реальном мире.

Разработка Swift началась в 2010 году. Занимался ей Крис Латтнер. До 2013 процесс шел не очень активно. Постепенно вовлекалось все больше людей. В 2013 году Apple сфокусировалась на разработке этого языка. Перед презентацией на WWDC о Swift знало порядка 200 человек. Информация о нем хранилась в строжайшем секрете.


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

Вы должны сказать: «Мы закончили это. Сделано!», а затем продолжить движение к следующей цели.
REWORK

Привет! Меня зовут Александр Алехин, я отвечаю за поддержку и развитие проектов в компании Redmadrobot. Сегодня я хотел бы поделиться опытом организации процессов поддержки мобильных приложений и рассказать, как это работает у нас.


Основная специализация компании в данный момент — сервисные приложения для самообслуживания клиентов финансовых и телекоммуникационных компаний. Этот факт накладывает некоторую специфику. С одной стороны эти компании имеют свои департаменты обслуживания клиентов, которые принимают на себя первую волну вопросов и жалоб пользоваталей. С другой стороны поддержка таких приложений требует повышенного уровня предоставления услуг, который привязан к уровню сервиса компании-заказчика.

Необходимость поддержки

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

Долгий цикл производства (time to market) — зло, тем более в сфере мобильных технологий, где операционные системы обновляются каждый год, а новые устройства появляются раз в два-три месяца. Если вы разрабатываете первую версию продукта более полугода, это означает, что он морально устареет еще до публикации.

Забавный факт. Год назад мы подписали договор на создание приложения, в котором указали, что минимальной поддерживаемой версией ОС будет iOS 7, к тому моменту еще не вышедшая. Нас заставили вставить примечание, что требование действительно, в случае, если новая версия ОС выйдет, и случится это в запланированные Apple сроки. В итоге Apple уже анонсировала iOS 8, но приложение до сих пор не опубликовано.

Сейчас мы пытаемся донести эти очевидные вещи нашим заказчикам и работать по модели непрерывного улучшения с короткими итерациями: не более 3-х месяцев на первый релиз и не более месяца на обновления. И для того, чтобы эта модель работала, необходима выстроенная система поддержки и развития продукта.

Основными задачами, решаемыми после публикации приложения являются:

  • мониторинг работоспособности;
  • получение обратной связи от конечных пользователей продукта и оказание помощи в решении их проблем;
  • улучшение стабильности работы и добавление новой функциональности;
  • адаптация приложения под новые устройства и версии ОС;
  • отслеживание степени удовлетворения бизнес-потребностей компании-заказчика;
  • корректировка плана развития продукта.

И вот, как мы решаем эти задачи.Читать полностью »

image

Бон Джорно, сеньоры!
Я перевыпустил древнюю игру Dice 5, с которой собственно и начинал жизнь в необычном мире iOS разработки.
Хочу поделиться полезным для многих режимом накладывания трехмерных объектов на стандартные красивые элементы управления и шрифты iOS.

В качестве десерта я расскажу о процессе одобрения игры в яблочном магазине и подглядывания за сотрудниками Apple Review Team. Вдруг кому пригодится?
В статье будет много иностранных вордсов, потому что меня просто прет использовать их после запрета от нашей ГД.

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

На этой неделе Twitter открыл рекламу приложений для всех, Папа всей iOS разработки поделился своими рекламными успехами, опубликовано интересное исследование безопасности приложений, Android Studio близится к релизу и перешла в стадию беты. Давайте вместе еще раз пройдемся по материалам.

Полезные материалы для мобильного разработчика #60 (30 июня 6 июля)Читать полностью »

BDD тестирование в Swift с помощью Sleipnir
Objective-C разработчики могут пользоваться различными фреймворками для BDD тестирования своего кода.
Некоторые из них:

С появлением языка программирования Swift мы решили реализовать фреймворк для тестирования в стиле BDD на чистом Swift, без привязки к Objective-C.
После пары недель имлементации мы выпустили первую публичную версию фреймворка Sleipnir.
Читать полностью »


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