Как стать автором
Обновить
47.02

iOS *

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

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

Хорошая клиент-серверная архитектура

Время на прочтение5 мин
Количество просмотров27K
Сразу оговорюсь, что я мобильный разработчик, а статья предназначается в основном разработчикам по ту сторону облака — мобильщики итак про все это знают. Последнее веб-приложение я писал много лет назад и могу ошибаться в веб-терминологии, не знать некоторых последних тенденций .NET-, PHP- или Java- веб-сервисов, так что не судите строго.

Как и любому front-end разработчику, мне почти в каждом проекте приходится сталкиваться с клиент-серверными протоколами – без них никак. И очень, крайне часто приходится работать с плохо продуманной архитектурой.

Также очень часто разработка протокола и архитектуры ложится на плечи веб-разработчика, что не всегда верно – она в большинстве случаев должна разрабатываться только совместно с теми, кто под эту архитектуру будет подстраиваться. К сожалению, работая за последние три года на нескольких десятках проектов, мне доводилось участвовать в планировании этого участка архитектуры только 3 или 4 раза – во всех остальных случаях она уже была предоставлена в разной степени готовности заказчиком. А ведь насколько мир мог бы быть лучше!
Читать дальше →

Падение Angry Birds

Время на прочтение5 мин
Количество просмотров48K
В прошлом году я проводил вебинар, участие в котором возможно было только по приглашениям и каждый его участник подписывал NDA соглашение перед посещением. На этом вебинаре я рассказывал о текущем состоянии индустрии мобильных игр и о том, как независимые разработчики могут занять доминирующее положение.

В частности я представлял углубленный анализ Angry Birds VS Tap Pet Hotel и того, как премиальные игры за $0.99 оказались побеждены бесплатными играми. Теперь это звучит очевидно, но хочу напомнить, что это было 12 месяцев назад и во время этого вебинара Tap Pet Hotel было лишь несколько месяцев отроду. Многие люди на вебинаре на самом деле не понимали как работают социальные игры.

Магазины приложений прошли через два этапа. Второй этап завершился около 6 месяцев назад.

Этап 1 в монетизации приложений был обусловлен платными играми (по 0.99 за игру).

Этап 2 это «Free to play» и сейчас такие приложения правят магазином.


Этап 2 в жизни App Store: падение Злых Птиц



Никакая из игр серии Angry Birds сейчас не входит в Топ-50 самых прибыльных приложений на iPhone. Самой близкой к чарту является оригинальная игра на 52 месте:

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

Магия TestFlight, или Подробнее о технологиях Configuration Profile и URL Scheme

Время на прочтение4 мин
Количество просмотров8.4K
На Хабре уже были статьи про TestFlight (вот тут и тут), но в них речь шла главным образом про его использование и интеграцию/автоматизацию в процесс сборки. А мне всегда было интересно, как это работает изнутри:
• Как происходит сбор идентификаторов устройств? (Если вам непонятно, зачем собирать UDID’ы, пройдите по ссылкам выше)
• Как приложение устанавливается по переходу по ссылке?
• Как создается иконка на Home Screen?
• Все это хаки или легальные способы?

Если вы хотите построить свой TestFlight c блэк-джеком и всем остальным или просто интересуетесь, как сделано что-то из вышеперечисленного, – прошу под кат.

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

5 фактов о китайском рынке игровых приложений

Время на прочтение2 мин
Количество просмотров13K
Генри Фонг (Henry Fong), исполнительный директор Yodo1, поделился с порталом Gamasutra своим видением китайского рынка игровых приложений. Сама Yodo1 помогает западным издателям выйти на рынок Поднебесной, который является одним из крупнейших iOS и Android рынков.

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

Покупки внутри приложений зависят от количества приложений и игр

Время на прочтение3 мин
Количество просмотров6.6K
Покупки внутри приложений стали наиболее популярным способом, с помощью которого разработчики пытаются получить доход, ведь большая часть из топ-25 прибыльных приложений на iOS — распространяется бесплатно. Британская компания NaturalMotion за месяц заработала $12 млн. с помощью покупок, совершаемых только внутри игры CSR Racing для iOS, так что микро-платежи вполне могут сливаться в широкую реку прибыли.

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

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

AppCode 1.6: что нового?

Время на прочтение2 мин
Количество просмотров6.4K
Команда AppCode рада представить вам новую версию нашей интегрированной среды разработки для Objective-C — AppCode 1.6 .

Теперь AppCode гораздо быстрее работает с большими проектами, полностью совместим с Xcode 4.4 и Xcode 4.5 preview, поддерживает проекты CocoaPods, проектные и файловые шаблоны сторонних разработчиков, а также все новые функции Objective-C.
Вот лишь некоторые особенности релиза:

Исследуем iOS SDK и используем недокументированные API

Время на прочтение19 мин
Количество просмотров33K
Из этой главы, да и из всей этой книги понятно, что самые лакомые куски программирования под iOS включены в публичные фреймворки, но не в SDK. Неофициальная политика Apple насчет этого проста: вы можете всё это использовать, но только на свой страх и риск. Ваш код может сломаться при следующем обновлении прошивки. Вам самим придётся искать компромисс между риском и прибылью.

Erica Sadun, The iPhone Developer's CookBook
Оригинал
As you’ve seen in this chapter, and throughout this book, some of the nicest bits of iPhone programming are included in the public iPhone frameworks but not in the SDK. Apple’s unofficial policy on this is clear:You can use these items in your programs, but you do so at your own risk.Your code may break at each firmware release. Striking the balance between risk and reward is up to you.

Дисклеймеры


  • Приведенные здесь куски кода работают на обычных iPhone (включая 4S) и iPad (включая new iPad) и не требуют jailbreak.
  • Все решения написаны и протестированы на iOS 5. Все решения также протестированы на совместимость с iOS 4.3, т.е. работают с iOS 4, если не сказано обратное. Основная часть статьи была написана до выхода iOS 6, так что приведенные решения не тестировались на совместимость с iOS 6.
  • Использование недокументированных API может привести к тому, что ваше приложение не допустят в AppStore. А может и не привести :-)
    Для тех, кому интересно, как Apple опрделяет использование приваетных API:«Как Apple узнаёт, что ты используешь приватные API?»
  • Apple может изменить реализацию вместе со следующим релизом iOS, и в вашем коде что-то сломается. Впрочем, это решаемо, и ничем принципиально не отличается от реализации обратной совместимости для документированных API. Ниже я рассмотрел эту проблему чуть подробнее.
  • Я не могу гарантировать, что у найденных мной API нет побочных эффектов. Используйте на свой страх и риск.
  • Лицензионное соглашение Apple Developer Program запрещает реверс-инжинеринг iOS.
  • Статья в процессе доработки. Конструктивная критика приветствуется!

Краткая инструкция по поиску в SDK


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

Энергосберегающий background location + отправка данных на сервер из фона

Время на прочтение5 мин
Количество просмотров14K
Постановка задачи

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

Решение

Решение в лоб — использовать данные из коллбеков [CLLocationManagerInstance startUpdatingLocation] как в фоне, так и когда приложение активно. Первый и наиболее критичный недостаток данного решения — высокое энергопотребление (за несколько часов аккумулятор iPhone может полностью сесть). Второй — если приложение будет свернуто и 'убито', никаких апдейтов положения пользователя мы получить не сможем.

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

Как попасть в App Store. Или история случайного аппрува

Время на прочтение5 мин
Количество просмотров11K

Привет Хабр,

На сайте немало статей рассказывающих о том, как успешно пройти модерацию у Apple Review Team. Эта статья не об этом. Она скорее о том, как мы случайно получили аппрув, не особо этого желая.
К чему это привело и во что вылилось — читайте дальше.

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

Разработчик, не бойся нового iPhone

Время на прочтение2 мин
Количество просмотров3.8K
Многие разработчики ожидают новых проблем от выхода нового iPhone, так как уже почти никто не сомневается, что разрешение его экрана будет больше, чем у iPhone 4 и 4S. С каждым днём поступает всё больше подтверждений, что новый айфон обзаведется экраном с разрешением 640x1136, то есть вытянется в высоту.


И вот еще одно подтверждение: программист Cédric Luthi с ником 0xced опубликовал в своем блоге запись, проливающую свет на то, как были сделаны скриншоты iOS Simulator из вчерашней новости с 9to5Mac. Простое изменение конфигурационных файлов iOS Simulator приводит к его запуску в нестандартном на данный момент разрешении 640x1136 (можно и в других, как я понял).
Читать дальше →

Хочешь быть iOS разработчиком? Будь им!

Время на прочтение2 мин
Количество просмотров389K
На хабре в прошлом месяце была опубликована статья Конкурс ВК: Мессенджер для Android. Как это было!, в которой автор поделился своими мыслями о конкурсе и опубликовал список ресурсов и статей, которые помогли ему в создании приложения. Так как в последнее время я начал изучать разработку под iOS, то у меня скопилось некоторое количество ссылок, которые могут быть полезны для начинающих. Поэтому я последую его примеру и сделаю то же самое, только для своей платформы. Надеюсь, кому-нибудь они окажутся полезны и сэкономят немного времени.

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

Objective-C Runtime изнутри

Время на прочтение5 мин
Количество просмотров34K
(оригинал — Mike Ash, взято отсюда)

Многие Cocoa разработчики имеют довольно смутное представление об Objective-C Runtime API. Они знают, что он существует где-то там (некоторые не знают даже этого!), что он важен, и Objective-C без него неработоспособен, но обычно этим все знания и ограничиваются.

Сегодня я расскажу о том, как устроен Objective-C на уровне Runtime и о том, как конекретно вы можете это использовать.
Читать дальше →

Mobile Developer Day в Одессе

Время на прочтение1 мин
Количество просмотров3.5K
16 августа в Одессе состоится конференция для мобильных разработчиков — Mobile Developer Day.

image

Тематика главного зала — продвижение, PR и монетизация мобильных приложений, кроссплатформенность, перспективы дополненной реальности и Smart TV. Параллельно основному потоку докладов будут проходить бесплатные мастер-классы по мобильной разработке. Регистрация →

Уже на следующий день, 17 августа, жители и гости Южной Пальмиры смогут принять участие в OdessaCamp 2012, поэтому берите отпуск, пакуйте чемоданы и отправляйтесь отдыхать и общаться с коллегами.

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

Freemium или free-to-play: есть ли разница

Время на прочтение4 мин
Количество просмотров27K
Два созвучных понятия — freemium и free-to-play — для многих стали абсолютными синонимами. Очень часто, когда пишут о монетизации игр, особенно мобильных, одно с легкостью используют вместо другого.

Но несмотря на ту пугающую частоту, с которой сегодня путают freemium и free-2-play, они не только отличаются друг от друга, но и пришли в мир мобильных приложений совершенно разными путями.

Давайте разберемся, в чем же разница.

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

Локализация мобильных приложений. Часть 2

Время на прочтение6 мин
Количество просмотров16K
Если по-честному, то эта статья не должна являться продолжением первой моей статьи о мгновенном изменении языка iOS-приложений. Если первая статья была написана программистом для программистов, то в этой заметке пойдет речь непосредственно о процессе локализации, применимом к любой мобильной (и не очень) платформе.

Но мы меня простим и сделаем вид, что это цикл статей ;).

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

Попробуем ответить на каждый из этих вопросов по отдельности.
Читать далее...

Новый паттерн UI — боковая навигация

Время на прочтение7 мин
Количество просмотров50K
Занимаюсь редизайном приложения 10tracks для Android, и решил позаимствовать красивый интерфейсный ход старших братьев — Facebook и других. На эту тему нашлась хорошая статья, переводом которой спешу поделиться с вами. Между тем эта статья — больше платформа для дискуссии, чем нерушимые устоявишеся правила.


За последний год интерфейс Android улучшался с феноменальной скоростью (я подобрал небольшую галерею приложений, которые мне нравятся в Google+). Много изменений являлись лишь косметическими (тема Holo в ICS, шрифт Roboto, и т.д.). Мы не увидели больших качественных изменений в принципах проектирования интерфейсов. Но, возможно, как раз сейчас происходит одно такое.

Почти одновременно несколько приложений внедрили у себя боковую навигацию как в приложении Facebook. Сначала мы увидели, как она используется в новом дизайне Spotify, а затем почти сразу решение переняли Evernote. Не прошло и года, в новом дизайне приложения Google+ представили аналогичный паттерн.
Читать дальше →

Junior iOS developer. Путь становления

Время на прочтение5 мин
Количество просмотров44K
Всем привет.

Введение


Расскажу вам свою историю о том, как я стал работать iOS разработчиком на 2 курсе университета. Рассказ будет от и до, со всеми прелестями и подробностями. Надеюсь, кому-нибудь из начинающих пригодится. Все действия происходили в Москве.
Читать дальше →

Видеозахват-2

Время на прочтение3 мин
Количество просмотров2.2K
imageНесложно жить в 21 веке. Еще проще получить видео-картинку с любой из камер iPhone внутри своего приложения.
Как это сделать и как это сделал я, было рассказано в статье про фруктожорку.

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

Ниже я приведу пример превращения плоской картинки в GL текстуру и расскажу, как я тайком подглядывал за iOS Review Team.

Напоминаю, что iOS Review Team — это люди, которые проверяют наши приложения для одобрения в appStore.

Подглядывать здесь

Corona SDK — для начинающих. Работа с несколькими сценами при помощи Storyboard API

Время на прочтение4 мин
Количество просмотров44K
Corona SDK — это кросс-платформенный движок для создания игр под iOS и Android. Лично мне он нравится своей простотой освоения: пятерка в школе по паскалю — достаточный багаж знаний для покорения «короны». На хабре уже есть несколько статей на эту тему, но подробных уроков для начинающих как на этом, так и на других русскоязычных сайтах очень мало.

В этой статье я расскажу об одном из ключевых вопросов работы с Corona SDK — организация нескольких сцен в одном приложении.
Читать дальше →

Защита против универсальных взломов in-app покупок

Время на прочтение3 мин
Количество просмотров7.4K
Описанный ниже метод защиты был взломан, читайте продолжение этого поста: Защита против взломов in-app покупок. Часть 2.

Не так давно шумели новости о активации in-app покупок бесплатно и даже без джейлбрейка. Идея проста: в систему устанавливаются ssl сертификаты и прописывается кастомный dns сервер, который запросы к серверам apple будет пересылать на сервер взломщиков. Сервер взломщиков будет подтверждать покупку и она успешно активируется на устройстве. После выхода этой новости паники было много и Apple даже пришлось что-то делать и рассказывать разработчикам, как защитить их приложение. На самом деле проблема была не нова, на джейлбрейкнутых устройствах уже давно можно было активировать in-app покупки бесплатно. Решение проблемы также не ново, оно описано в документации Apple, но практической реализацией никто себя не утруждал. О моей версии такой защиты и пойдет речь ниже.
Читать дальше →