Обновить
65.64

iOS *

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

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

Полезные материалы для мобильного разработчика #62 (14-20 июля)

Время на прочтение3 мин
Охват и читатели14K
В еженедельном дайджесте портирование «Эволюции» на Android, конкурс для разработчиков от Wargaming, бесплатные курсы программирования для Android, сокращение 18,000 человек и запуск продаж приложений в Беларуси и странах СНГ у Microsoft, сотрудничество Apple и IBM в корпоративной сфере. Интересная выдалась неделя!

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

Кому нужен этот HTML: «Как я за 2 месяца запилил платежный сервис — и отправил на свалку»

Время на прочтение4 мин
Охват и читатели24K
Выбор между дыбой и колесованием — HTML5 и нативной средой программирования — рано или поздно встает перед любым мобильным разработчиком, которому важно присутствовать на разных платформах. Нас в UBANK он тоже не обошел стороной.

В 2011 году мы начинали именно с html-версии, которая работала на Android. Готовились портировать ее на другие платформы, несмотря на трудности, с которыми пришлось столкнуться. Но в итоге через два года свернули этот проект и заменили проект на нативные приложения.



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

Кручу, кручу, кручу, педали кручу

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

Дети подросли и оборвали провода на тренажере. Вело-табло приказало долго жить и крутить педали стало не интересно. Я решил починить табло по-нашенски, по ios-овски.

И проделал следующие шаги
  • примотал простейший BLE датчик к корпусу тренажера
  • прилепил магнит к шатуну
  • написал программу под iPad

Далее чуть-чуть подробнее, со схемой, текстом, фото и видео.
Читать дальше →

Программируем для iPhone и iPad. 3-е изд

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

Достаточно очевидно, что, несмотря на скорое полноценное наступление эпохи Swift, Objective C еще довольно долго не утратит актуальности. Поэтому вашему вниманию мы представляем еще одну книгу серии Head First: Программируем для iPhone и iPad. Название говорит само за себя — это традиционное для серии подробное и интересное пособие о том, как программировать на Objective C, проектировать интерфейсы, создавать приложения, работать с инструментами iPhone SDK (среда разработки, описываемая в книге — Xcode5). Вся информация подана в разговорной, ненавязчивой манере с большим количеством иллюстраций и юмора, что характерно для всех книг Head First. И пусть вас не пугает классический facepalm на обложке — повествование действительно доходчивое и увлекательное.
Читать дальше →

Полезные материалы для мобильного разработчика #61 (7-13 июля)

Время на прочтение3 мин
Охват и читатели12K
На минувшей неделе Samsung в очередной раз отложил запуск своего смартфона на Tizen, Сатья Наделла выпустил программное письмо, объясняя будущее Microsoft, вышел мобильный King от Papa Buba Diop, ну и, конечно, исполнилось 6 лет App Store — магазину, совершившему революцию в мобильной экосистеме.

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

Обзор 7 самых популярных кроссплатформенных мобильных фреймворков

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

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

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

King — да здравствует король!

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

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

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

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

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

Реализуем pull to refresh и infinite scrolling на Swift

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


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

Работа c JSON в Swift

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

Покажите мне разработчика, которому еще ни разу не приходилось работать с 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

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

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


Презентация и конспект доклада

Прозрачный OpenGL

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

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

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

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

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

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

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

BDD тестирование в Swift с помощью Sleipnir

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

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


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

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

Финансы от пасьянсов поют романсы

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

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

Почта России планирует разработать приложение для iOS и Android

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

Все мы видим, сколько негатива регулярно генерирует общество в сторону Почта России. И вот наконец эта организация решила улучшить жизнь своим клиентам, для этого она разработает приложение для платформ iOS и Android. Похвальный шаг, но есть одно но, на реализацию этой задумки будет выделено не много не мало, а 19 млн рублей.
Читать дальше →

Работа каскада Хаара в OpenCV в картинках: теория и практика

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


В прошлой статье мы подробно описали алгоритм распознавания номеров (ссылка), который заключается в получении текстового представления на заранее подготовленном изображении, содержащем рамку с номером + небольшие отступы для удобства распознавания. Мы лишь вскользь упомянули, что для выделения областей, где содержатся номера, использовался метод Виолы-Джонса. Данный метод уже описывался на хабре (ссылка, ссылка, ссылка, ссылка). Сегодня мы проиллюстрируем наглядно то, как он работает и коснёмся ранее необсужденных аспектов + в качестве бонуса будет показано, как подготовить вырезанные картинки с номерами на платформе iOS для последующего получения уже текстового представления номера.
Читать дальше →

Multiple Delegate

Время на прочтение4 мин
Охват и читатели11K
В Cocoa очень популярен паттерн делегирование. Стандартный способ реализации этого паттерна — добавление к делегатору weak свойства, которое хранит ссылку на делегат.

У делегирования много различных применений. Например, реализация какого-то поведения в другом классе без наследования. Еще делегирование используется как способ передачи уведомлений. Например, UITextField вызывает у делегата метод textFieldDidEndEditing:, который информирует его о том, что редактирование закончено, и т.д.

А теперь представьте задачу: надо сделать так, чтобы делегатор посылал сообщения не одному делегату, а нескольким, причем делегирование реализовано стандартным методом через свойство.
Читать дальше →

Полезные материалы для мобильного разработчика #59 (23-29 июня)

Время на прочтение3 мин
Охват и читатели14K
Едва -едва мы разобрались с последствиями WWDC, как Google проводит свою главную конференцию для разработчиков. Один миллиард пользователей, новый Android L, новый дизайн, Android в машинах и телевизорах — этого нам хватит на долго. А кроме этого — виртуальная реальность из картона, Nest открывает доступ для разработчиков, «Вконтакте» анонсирует мобильную игровую платформу и много другого интересного.

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

Приватные методы для отладки

Время на прочтение13 мин
Охват и читатели8.9K
Наверняка уже все знают, что у UIView есть полезный метод recursiveDescription.
Вызов которого, вернет строку с описанием всей иерархии вью.

(lldb) po [[self view] recursiveDescription]
<UIView: 0x6a107c0; frame = (0 20; 320 460); autoresize = W+H; layer = […]
   | <UIRoundedRectButton: 0x6a103e0; frame = (124 196; 72 37); opaque = NO; […]
   |    | <UIButtonLabel: 0x6a117b0; frame = (19 8; 34 21); text = 'Test'; […]
   .....

Еще многие знают, что при помощи рантайма, можно получить список переменных/методов/свойств/протоколов/… класса. И обычно для этих целей пишут вспомогательный код. Но оказывается, все уже давно написано сотрудниками Apple. В UIKit.framework реализована категория с именем IvarDescription.

@interface NSObject (IvarDescription)
- (id)_shortMethodDescription;
- (id)_methodDescription;
- (id)__methodDescriptionForClass:(Class)arg1;
- (id)_ivarDescription;
- (id)__ivarDescriptionForClass:(Class)arg1;
@end

Названия метдов говорят за себя. Но давайте посмотрим, что же они возвращают.
Читать дальше →

Xamarin. За и против

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

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

Уже больше года моей основной задачей является разработка на C# под Android и IOS, и я постараюсь ответить на основные вопросы, возникающие при выборе monotouch и monodroid. В статье будет много личного мнения и описания костылей, так как ответы по техническим вопросам можно легко найти на официальном сайте Xamarin: docs.xamarin.com

Поскольку Xamarin 3 вышел только недавно, мне не удалось полностью прощупать новые возможности и изменения в платформе. Тем не менее, почти все «особенности» разработки в monotouch и monodroid по-прежнему актуальны.
Читать дальше →