Обновить
65.59

iOS *

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

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

Интеграция OneNote Services API в мобильные приложения

Время на прочтение4 мин
Охват и читатели4.5K
Недавно Microsoft представила для разработчиков новый OneNote Services API, который позволяет создавать записи в Notebook'е пользователя напрямую из Вашего приложения. На данный момент API поддерживает создание записей, состоящих из текста, html, URL'ов и изображений, а также создание snapshot'ов web-страниц по URL (при помощи Bing). News360, как партнер Microsoft, в числе первых интегрировали API во все свои мобильные приложения (iOS, Android, WinPhone и Windows 8). Интеграция не составляет труда — Microsoft предоставляет Live SDK для iOS, Android и Windows, а также REST API для web и мобильных приложений.
Читать дальше →

Авторизация с помощью клиентских SSL сертификатов в IOS и Android

Время на прочтение8 мин
Охват и читатели40K
Протокол безопасной передачи данных SSL (Secure Sockets Layer) помимо обеспечения безопасной передачи данных так же позволяет реализовать авторизацию клиентов при помощи клиентских SSL сертификатов. Данная статья является практическим руководством по реализации данного вида авторизации в мобильных приложениях на IOS и Android.

Процесс организации работы сервера обеспечивающего такой вид авторизации в статье не рассматривается, однако в конце приведены ссылки по данной тематике.

Процесс авторизации выглядит следующим образом. При переходе клиента в закрытую область сервер запрашивает у клиента сертификат, если проверка прошла успешно то клиент получает доступ к закрытому контенту в ином случае клиент может получить ошибку “No required SSL certificate was sent”.
Читать дальше →

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

Время на прочтение3 мин
Охват и читатели11K
На этой неделе была очень интересная статья о «мобильном» ценообразовании от Олега Якубенкова из Zeptolab, вышла превью-версия WP 8.1 и опубликован анонс изменений в магазинах приложений Windows и Windows Phone, выпущен App Annie Market Index за первый квартал. Ну и много других интересных новостей в еженедельном дайджесте.

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

Еще один 2048, теперь треугольный

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

В нашем клубе уже было описание игры 2048. Признаюсь, с первого раза игра мне не понравилась. Однако после прочтения следующей статьи, с подсказкой игровой стратегии, все изменилось. Я уверенно установил приложение 2048 на телефон и несколько раз сыграл. Родив через пару-тройку часов блок 8192, я затосковал и снес игру, решив сделать свой вариант. Вариант 1) нескучный и 2) для тупых.

Судя по отзывам приятелей и личному опыту, цель была достигнута. Приятелям мой вариант показался 1) нескучным, а для меня — 2) самый раз.

Срочно в номер. Только что review team одобрила игру. Как обещал, объявляю ее бесплатной с этой минуты на три дня, а там как кривая американской мечты вывезет.
.
Читать дальше →

Утечка конфиденциальных данных при кешировании сетевых запросов на платформе iOS

Время на прочтение7 мин
Охват и читатели6.7K
Критичным аспектом в контексте информационной защищенности пользовательских данных является конфиденциальность передаваемых данных в процессе взаимодействия защищаемого приложения с веб-сервисами. Например, утрата конфиденциальности в приложениях, манипулирующих номером банковской карты и кодом аутентификации CVV2/CVC2, представляется уязвимостью критичной степени важности. Одной из распространенных ошибок при разработке защищенных приложений для мобильной платформы iOS, приводящих к частичной или полной утрате конфиденциальности передаваемых данных, является чрезмерное кэширование межсетевых запросов.

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

Подобно кэшированию запросов динамической памяти или условных переходов в микропроцессорах, интерфейсы классов, кэширующих HTTP-запросы, являются прозрачными для разработчика и осуществляют кэширование на фоне. Продолжая аналогию с функциональным блоком кэширования в процессоре, можно отметить, что отсутствие представлений о внутреннем устройстве механизма кэширования зачастую приводит к грубым ошибкам программирования. В контексте мобильных приложений, неправильное использование кэша HTTP-запросов приводит к падению производительности приложения и частичной либо полной утрате конфиденциальности. Примером распространенной ошибки, приводящей к падению производительности, является повторное кэширование запросов приложением (Double caching).

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

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

Время на прочтение3 мин
Охват и читатели19K
Несколько отличных историй о разработке приложений из «первых рук», юридический ликбез для инди-разработчиков, гранты от Microsoft, рассказ о традиционном боковом меню, которое «унесло» половину пользователей – все это и многое другое в еженедельной подборке новостей из мира мобильной разработки.

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

По следам публикации в Google Play/App Store/ Steam Greenlight

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


Началось всё с желания делать свои игры вместо того, чтобы делать чужие.
Полгода назад я (программист) и мой товарищ (художник) уволились с работы и решили начать делать проект мечты — раллийный симулятор.
Этот проект мы задумывали очень давно, но не хватало опыта и знаний, чтобы начать и закончить.
За несколько последних лет мы оба набрались опыта и созрели для того, чтобы наконец сделать этот проект.
Но за те 10 лет, что мы пробовали свои силы, наши наработки полностью устарели. Кодовая база оказалась сложно портируемой на мобильные устройства. Контент не соответствовал современным требованиям.
Пару месяцев мы ковыряли то, что у нас уже было в надежде понять, что же делать…
И пришли к выводу:
Надо прощупать почву

Нам надо было понять, каким образом ведётся разработка кроссплатформенного движка, способного адекватно работать как на ПК, так и на мобильных ОС. Как публикуется игра? Как ведут себя отдельные площадки и на каких условиях работают?
Нам нельзя на проекте мечты совершать детские ошибки. Проект должен разрабатываться и публиковаться с чётким пониманием: как, что и для чего делается.
И для этого мы взялись реализовать тестовый проект. Небольшую казуальную игру.
Эта статья о том, как мы публиковались на Google Play, как провалили публикацию на Greenlight и какие сюрпризы нас ждали в AppStore.
Читать дальше →

Многопоточная Core Data

Время на прочтение4 мин
Охват и читатели26K
Как известно, Core Data является мощным Apple фреймворком для управления объектным графом. На Хабре немало статей о Core Data, тем не менее, многопоточность освещена достаточно слабо, а, как мне кажется, вопросом о том как правильно ее реализовать, задавался почти каждый.
Читать дальше →

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

Время на прочтение3 мин
Охват и читатели9.2K
Главной на этой неделе, пожалуй, стала компания Microsoft с анонсом Windows Phone 8.1 и связанных инструментов. Кроме того вышло несколько интересных исследования: Flurry рассмотрела какими приложениями пользуются люди, Fiksu проанализировала влияние количества закачек на положение приложения в поиске, WildTangent рассмотрела работу Value Exchange Advertising.

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

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

Время на прочтение4 мин
Охват и читатели7K
Разработчики мобильных приложений зачастую сталкиваются с необходимостью хранить конфиденциальные данные пользователя на пользовательском устройстве. Это могут быть, например, номер кредитной карточки или аутентификационные данные. В этой статье мы поговорим о типичных ошибках реализации хранения конфиденциальных данных с точки зрения информационной безопасности на примере мобильной платформы iOS.
Обычно настройки приложения хранятся в конфигурационных файлах. Библиотека Cocoa Touch, используемая при разработке приложений для мобильной платформы iOS, предоставляет слой абстракции для хранения настроек приложения в классе NSUserDefaults. Класс NSUserDefaults реализует нелюбимый многими шаблон проектирования «Одиночка» (более известный как Singleton), предоставляя доступ к интерфейсу над стандартным конфигурационным файлом приложения.
Стандартный файл конфигурации приложения располагается в его домашней директории по относительному адресу Library/Preferences/<your.company.name>.<app.name>.plist. Как и другие файлы, расположенные в «песочнице», он не доступен на чтение для других приложений пользовательского уровня. Исключения составляют устройства, подвергнутые модификациям политики безопасности системы (jailbroken-устройства).
Многие разработчики по достоинству оценили удобство работы с классом NSUserDefaults. Подавляющее число приложений используют его для хранения внутренних настроек и/или настроек пользователя. К сожалению, удобство использования редко коррелирует с безопасностью. Хранение конфиденциальных данных пользователя в стандартном файле настроек является типичной ошибкой разработчиков, приводящей к утечке пользовательской информации.
В результате исследования исходного кода Приложения А на наличие ошибок в контексте информационной безопасности было выявлено, что приложение сохраняет данные аутентификации пользователя в конфигурационном файле настроек. Загрузив Приложение А на iPad под управление оригинальной операционной системы iOS версии 6.1.3, мы прошли стадию аутентификации и принялись за исследование файла настроек приложения.

image
Рис. 1. Загрузка приложения на iPad
Читать дальше →

Как Минковский во Flappy Bird играл

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


Многие пробовали играть во Flappy Bird. Редко кому удается пролететь за 50 труб, очень немногие долетают до сотни-двух. Некоторые пробовали создать бота, в том числе на хабре. Удивительно, но даже у самого успешного бота, которого можно найти на просторах интернета, результаты не очень-то впечатляют – что-то около 160 очков. Возникает вопрос, а можно ли вообще играть во Flappy Bird бесконечно долго? Или всегда с некоторой, пусть и небольшой, вероятностью может встретиться последовательность препятствий, которую даже опытный игрок/идеальный бот не сможет преодолеть?

И тут на помощь приходит математика. Давайте найдем выигрышную стратегию для Flappy Bird.
Читать дальше →

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

Время на прочтение2 мин
Охват и читатели8.4K
Что интересного было на этой неделе? Например, NVIDIA объявила о порте Portal на Android, в Москве прошла конференция AppSummit и ее запись доступна для просмотра, Олег Якубенков и Саша Подрезов (ZeptoLab) проанализировали топ кассовых игр в Appstore, вышли отчеты о монетизации Distimo и App Annie.

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

Сборка FreeType2 под iOS

Время на прочтение5 мин
Охват и читатели8.1K
imageimage
В интернете есть множество заметок о том, как собирать freetype под iOS.
Все эти заметки объединены общей характеристикой — они не работают.
Дело в том, что все инструкции оперируют gcc для сборки библиотеки, но начиная с XCode 5 gcc не входит в поставку и для сборки под iOS надо использовать clang.
Нет ни одной заметки о том, как компилировать правильно.
Исправляем эту несправедливость.

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

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

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

Время на прочтение2 мин
Охват и читатели11K
На этой неделе интересные новости сыпались как из рога изобилия — на GDC анонсировали пятую версию Unity, Unreal и CryEngine объявили о переходе на подписную модель распространения и процент от продаж, Google представил платформу для носимых устройств Android Wear, вышел Tizen SDK for Wearable, Flurry описала какие жанры как лучше монетизировать на Android.

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

«Сверхзвуковая» загрузка фотографий в Облако с помощью собственного NSInputStream

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


Максимально быстрая загрузка фотографий и видео с устройства на сервер была нашим основным приоритетом при разработке мобильного приложения Облако Mail.Ru для iOS. Кроме того, с самой первой версии приложения мы предоставили пользователям возможность включить автоматическую загрузку на сервер всего содержимого системной галереи. Это очень удобно для тех, кто волнуется о возможной потере телефона, однако, как вы понимаете, увеличивает объем передаваемых данных в разы.

Итак, мы поставили перед собой задачу сделать загрузку фото и видео из мобильного приложения Облака Mail.Ru не просто хорошей, а близкой к идеальной. Результатом стала наша библиотека POSInputStreamLibrary, которая реализует потоковую загрузку в сеть фото и видео из системной галереи iOS. Благодаря ее тесной интеграции с фреймворками ALAssetLibrary и CFNetwork загрузка в приложении происходит очень быстро и не требует ни байта свободного места на устройстве. О реализации собственного наследника класса NSInputStream из iOS Developer Library я расскажу в этом посте.
Читать дальше →

Полезные материалы для мобильного разработчика #44 (10-16 марта)

Время на прочтение2 мин
Охват и читатели12K
В новом дайджесте вебинары Nokia для Android-разработчиков, выход iOS 7.1, Amazon и AppStream, Unity и Applifier, Flappy Bot для Flappy Bird и исследование того, сколько в среднем стоит час мобильного разработчика в разных регионах.

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

ReactiveCocoa и MVVM

Время на прочтение1 мин
Охват и читатели8.6K
Последнее видео с одинадцатой встречи Apple Developers Community, которую 27 февраля организовали e-Legion и JetBrains.


Презентация

В докладе раскрывается тема использования функционально-реактивного подхода для разработки iOS- и Mac-приложений, его достоинства и недостатки. Также, рассказано об использовании паттерна Model-View-View Model для улучшения архитектуры и повышения тестируемости GUI-кода.

Все видео со встречи доступны на youtube-канале.

iOS Development Gems в AppCode

Время на прочтение1 мин
Охват и читатели5.2K
Продолжаем выкладывать видео докладов с Apple Developers Community #11, которую организовали e-Legion и JetBrains.


Презентация

В докладе рассказывается про AppCode — среду разработки мобильных и десктопных приложений под iOS и MacOS. Также, на примере создания небольшого приложения под iOS показывается, как AppCode может упростить и ускорить разработку мобильных приложений.

Многозадачность в iOS 7

Время на прочтение14 мин
Охват и читатели16K
До IOS 7, разработчики были довольно ограничены в том, что они могут сделать, когда их приложения оставались в фоновом режиме. Помимо VOIP и геолокационных функций, единственный способ для выполнения кода в фоновом режиме было использование фоновых задач, ограниченных к управлению в течении нескольких минут. Если вы хотели загрузить большое видео для просмотра в офф-лайн режиме, или сохранять фотографии пользователя на сервер, вы могли бы выполнить только часть работы.

IOS 7 добавляет два новых API-интерфейса для обновления пользовательского интерфейса вашего приложения и контента в фоновом режиме. Первый, Background Fetch (доставка в фоне или обновление фона), позволяет получать новый контент из сети через регулярные промежутки времени. Второй, Дистанционные Уведомления (Remote Notifications), это новая функция использует Push-уведомления, чтобы уведомить, когда произошло событие. Оба этих новых механизма помогают Вам сохранить интерфейс вашего приложения в актуальном состоянии, и могут планировать работу над новой Фоновой службой передачи, что позволяет выполнять вне — процесса передачи данных по сети (загрузка и передача).

Background Fetch и Удаленные Уведомления простые зацепки приложений каждые 30 секунд времени для выполнение работы пока Ваше приложение не приостановится. Они не предназначены для процессорной интенсивной работы или длительных задач, скорее, они для очередного давно запущенного запроса сети, как скачивание большого фильма или выполнения быстрых обновлений содержимого.

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

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