Обновить
53.25

iOS *

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

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

Objective-C Runtime изнутри

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

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

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

Защита против взломов in-app покупок. Часть 2

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

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

Что было плохо?
  • Было недостаточно проверок на соответствие чека и данных в SKTransaction.
  • Было недостаточно проверок ответа сервера.
Как это исправить?

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-приложений. Если первая статья была написана программистом для программистов, то в этой заметке пойдет речь непосредственно о процессе локализации, применимом к любой мобильной (и не очень) платформе.

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

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

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

Класс для проигрывания аудио из приложений iOS

Время на прочтение3 мин
Количество просмотров3.2K
Добрый день, Хабрасообщество!

Я хотел бы поделиться решением проблемы проигрывания аудио из приложений 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, но практической реализацией никто себя не утруждал. О моей версии такой защиты и пойдет речь ниже.
Читать дальше →

Разработчик в камере. Видео

Время на прочтение5 мин
Количество просмотров4.2K
Apple постоянно держит разработчиков в тонусе.
Фронтальные камеры на iPad и iPhone родили новый виток идей у создателей сиюминутных приложений. Я тоже провел небольшое исследование двухкамерных телефонов и приглашаю нажать на кнопку, кому это интересно.

image

Видеозахват в iOS 4.3+ стал простым, как апельсин.

Подробности камеры

Какие слова используют чаще всего в названиях мобильных приложений на iOS

Время на прочтение2 мин
Количество просмотров6.6K
Интересно, какие слова наиболее часто используются в названиях мобильных приложений? По-видимому, компания Appsfire тоже заинтересовалась этим вопросом и только что выдала нам результаты исследования, проведенного для определения самых популярных слов, которые сегодня разработчики используют в названиях приложений. Хотя некоторые из результатов очевидны (например, app — приложение), из списка можно понять несколько интересных тенденций.

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

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

В помощь тем кто хочет начать разработку приложений для iOS

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

Разработчик, кто он?



Для начала, надо понимать зону ответственности разработчика приложений и те роли, которые могут присутствовать в ходе всего процесса разработки. Лучше всего это понимание приходит после работы в команде, но все-таки немного теории. Роли примерно следующие:
  • Заказчик
  • Менеджер
  • Архитектор, старший разработчик
  • Разработчики
  • Дизайнер


Роли можно расписать более подробно – все зависит от сложности проекта и от наличия или отсутствия человеческих ресурсов.
Как это все работает. У заказчика появляется идея, он хочет ее воплотить жизнь. Возможно, он еще сам толком не представляет, чего хочет и может выговорить менеджеру только несколько слов. К примеру «iphone» и«карта моих ресторанов». После чего, задача менеджера составить с заказчиком максимально подробную спецификацию приложения. В спецификацию должна входить вся информация от поддерживаемых версиях операционной системы до зарисовок экранов. Вот пример зарисовок(wireframes, mockups) вместе с оценкой.
image

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

Tips and tricks



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

История о велосипеде

Время на прочтение5 мин
Количество просмотров3.8K
imageИногда программисты изобретают свои «велосипеды», но действительно ли это плохо, особенно если творение не отличимо от оригинала, а автор получает бесценный опыт?

Эта история началась чуть более года назад с появлением у моей супруги современного смартфона. Она попросила найти пасьянс «Косынку», такой же как был когда-то на настольной Windows. Просмотрев десяток программ, я был неприятно удивлен — почти везде было неудобное управление, спорные картинки карт, море дополнительных наворотов вроде 250 пасьянсов в одном, установки фотографии на рубашку и блекджека с блудницами. В результате, выбрали один из более-менее годных вариантов и на какое-то время об этом забыли.
Пролетел год и я начал писать программы для мобильных. При этом ребром стал вопрос кросс-платформенности, отладки in-app покупок, подготовки контента под разные платформы. Была мысль сделать для пробы пера «Тетрис» или очередной калькулятор, но все же в качестве «велосипеда» я выбрал «Косынку». Идейным стрежнем проекта стало максимально точное повторение старого, доброго пасьянса из набора игр Windows.

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

Как добиться 10 млн. загрузок или «партизанский маркетинг» для мобильных приложений

Время на прочтение5 мин
Количество просмотров22K
В день, когда мое приложение (AutoCAD WS) перешагнуло порог в 1 млн. скачиваний на App Store, первым, о чем я задумался, было – сделал ля я что-то особенное, чтобы успешно продавать его? Я был обычным менеджером по разработке продуктов и никогда не представлял себя в маркетинге, до тех пор, пока мое приложение не оказалось на грани жизни и смерти.

Стартап, соучредителем которого я являлся (позднее приобретенный Autodesk), разрабатывал CAD B2B приложение для инженеров. После запуска нашего продукта мы начали продвигать его на рынке по всем правилам маркетинга – занимались правильным позиционированием и работали с PR-агентствами, чтобы найти подход к блоггерам. Это не сработало. Мы сделали вторую и третью попытку – изменили наше позиционирование, обновили веб-сайт, добавили больше функций в приложение и написали большему количеству блоггеров. Опять не сработало.



Постепенно я пришел к пониманию того, что в конкурентной борьбе с сотнями тысяч других приложений за внимание пользователей, маркетинг – это не просто один из ингредиентов, влияющих на конечный успех приложения. Он – самый важный. У нас была маленькая команда с очень ограниченным маркетинговым бюджетом, поэтому мы вступили в войну с тем, что у нас было – нашими знаниями инженеров и дизайнеров-проектировщиков. В следующие месяцы мы отбросили все, что знали о традиционном маркетинге и стали искать новые креативные способы привлечения новых пользователей. И так как мы были инженерами – мы замеряли каждый шаг на этом пути, вплоть до последнего клика. Сегодня наш продукт может похвастаться 10 млн. загрузок по всему миру и клиентами из десятками компаний из списка Fortune 500.
Читать дальше →

Auto-Renewable Subscription в iOS: правильная реализация и подводные камни

Время на прочтение6 мин
Количество просмотров30K
Auto-Renewable Subscription, наверное, самый сложный из всех типов In-App Purchase в iOS, и реализовать его правильно, от начала и до конца, совсем непросто, и даже пройдя этот нелегкий путь, вы можете столкнуться с отказом цензоров принимать ваше приложение.

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

Добавляем возможность входа через ВКонтакте в iOS приложение

Время на прочтение7 мин
Количество просмотров21K
Вступление

Добрый день, Хабр!
Иметь «выходы» на социальные сети в своем приложении — крайне полезная штука. И сегодня мне хотелось бы поделиться своим небольшим опытом в «прикручивании» всем известной социальной сети к своему приложению. Что в этом интересного? А то, что в некоторых случаях использовать полноценные SDK просто нет смысла (учтем еще то, что официального ВКонтакте не имеет). Мне требовалось всего лишь узнать user_id и добавить возможность «Рассказать друзьям». В общем, всех, кто заинтересовался, прошу под кат! На сладкое — немного кодинга.
Читать дальше →

Отладка Objective-C ARC retain

Время на прочтение3 мин
Количество просмотров3K
Иногда возникают ситуации, когда стандартных средств отладки недостаточно.

Например, в iOS 4.1 была возможность использовать valgrind в симуляторе. А в Lion x86_64 и iOS 5 valgrind работать уже перестал.
Это связано с 64-битной архитектурой и изменениями в симуляторе (в valgrind есть ряд
недоработок).

С переходом на ARC метод отладки retain исчез:

- (id) retain
{
    // Break here to see who is retaining me.
    return [super retain];
}

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

Интервью с руководителем мобильного направления Mail.ru Group

Время на прочтение1 мин
Количество просмотров3.1K
В минувшем июне мы (Nevosoft) проводили в Питере профессиональную конференцию, посвященную играм на мобильных платформах, — White Nights Mobile Games Conference. Конференция удалась — было много интересных докладчиков, полезных встреч и разводных мостов. Некоторые спикеры ответили на наши вопросы после своего выступления. Предлагаем посмотреть видеоинтервью с Алексом Пацаем, руководителем мобильного направления Mail.Ru Group.

Вот список вопросов:

1. Правда ли, что если у разработчика есть небольшая мобильная игра, то единственный шанс “выстрелить” — это получить фичерение от Apple?

2. Вы говорите, что нужно стараться получить обзоры игры на как можно большем количестве сайтов. Т.е. получается, что если про тебя написали, например, на Pocketgamer — это уже первый шаг к успеху?

3. Какие каналы для продвижения Вы бы порекомендовали? Назовите два канала, необходимых для продвижения мобильной игры?

4. В презентации Вы рассказывали о том, что очень важна аналитика. Какие метрики стоит отслеживать в первую очередь?

5. Как часто нужно выпускать обновления для социально-мобильной игры?

6. Стоит ли разработчикам ориентироваться только на США? Ну или, если более широко, на англоязычную аудиторию?

7. На каких мобильных маркетах на данный момент представлены игры Mail.ru?

8. Как примерно рассчитывается маркетинговый бюджет на игру. Ну, например, на эту игру мы потратим 100 тысяч долларов, а на следующую — 200 тысяч. Или бюджет зависит, допустим, от конверсии, которую игра показывает после запуска?

9. Сколько нужно потратить, чтобы заработать миллион?

Все ответы смотрите в видео (внутри).
Читать дальше →