Рубрика «iOS» - 129

Во время разработки большого проекта наступает такой момент, когда надо встроить в приложение библиотеку из мира open source с подходящей лицензией. Например, вам захотелось ускорить декодирование картинок, или понадобился sqlite3 с fts4, или нужны какие-то плюшки из libicu, которых нету в системной libicucore.

Для этого библиотеку, которая понадобилась, нужно будет собрать для 5 архитектур: armv7, armv7s, arm64, i386, x86_64. С кросскомпиляцией есть много подводных камней, на которые не хотелось бы наткнуться, когда есть уже проверенные решения. В этом коротком посте я расскажу об автоматизации сборки библиотек на примере protobuf и sqlite3.
Читать полностью »

«Я не доверяю всем систематикам и сторонюсь их. Воля к системе есть недостаток честности.» — Фридрих Ницше.

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

Вы — автор гениальной идеи перспективного приложения. А скорее всего и сотни таких идей. Я искренне верю в то, что ваша идея действительно крутая. Но как часто гениальность идеи разбивается вдребезги о гранитный камень ее реализации!

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

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

В праздничную неделю новостей немного, но «их есть у меня». Главным, наверное, на этой неделе стал Facebook с конференцией F8 — компания объявила о снижении цен на Parse, о глубоких ссылках, мобильной кнопке Like и нескольких других интересных нововведениях.

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

Пишем клиент для Яндекс.Метрики для iPhone
Как многие из вас, наверное, знают, у Яндекс.Метрики есть замечательный API, позволяющий получить данные по вашим счётчикам в XML или JSON.

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

Существующие клиенты для iPhone мне показались ужасными и наконец руки перестали чесаться и дошли до написания
Читать полностью »

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

Для демонстрации уязвимости мы использовали приложение iExplorer, доступное для операционных систем семейств Windows NT и Mac OS X. Приложение iExplorer представляет собой графический файловый менеджер для устройств под управлением iOS. Находим Приложение А в списке установленных приложений и открываем Library/Preferences/<settings-name>.plist на чтение.

image
Рис. 2. Внешний вид приложения iExplorer c доступом к нужному файлу

image
Рис. 3. Конфигурационный файл с конфиденциальной информацией

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

Мы продолжаем рассказывать о разработанной нами нейросети и кластерном анализе для проекта favoraim.com. Чтобы наглядно представить, как развивается нейросеть во времени, мы попробовали интерпретировать изменения в ней в небольшое видео, которое показывает жизнь сети от ее «сотворения» до привлечения первого трафика – пользователей Хабра.

Взрыв в начале — это рождение нейросети, которая получила первую информацию при запуске. Затем система начинает обрастать нейронами – новыми смысловыми единицами и пользователями. Точки — это пользователи. Чем больше похожи их интересы, поведение, активность и введенные данные, тем ближе они расположены друг к другу. Серые линии – это пружины, которые моделируют систему, они отражают связи в нейросети.
Новый пользователь появляется в случайном положении с «натянутыми пружинами».Читать полностью »

Moai SDK 1.5 — кроссплатформенный 2д игровой движок
Сегодня я хочу рассказать об одном малоизвестном игровом движке, который мы используем уже год для кроссплатформенной разработки мобильных игр. Для 2д он нас полностью устраивает, а единственным конкурентом может быть только Unity3d из-за своего редактора. Отсутствие должного внимания к MOAI SDK, очевидно, связано с высоким порогом входа — сами разработчики (Zipline Games) позиционируют свой продукт как «The mobile platform for pro game developers», хотя разобравшись с установкой и настройкой окружения можно очень быстро и просто клепать игры на Lua.
Читать полностью »

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

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

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

Уважаемые айфоноводы, бывает ли с вами такое, что вы скачали приложение, а там… всё не то и не так и не на своих местах? Когда ваш юзер-экспириенс подсказывает вам, что приложение устроено неправильно: нажимаете вы, например, кнопку, которая всегда в iOS означала «Поделиться», а вам вместо этого вываливается какое-нибудь «левое» меню… Возникает неприятная фрустрация, и вы, скорее всего, сносите приложение со своего смартфона.

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

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

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


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