Обновить
66

iOS *

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

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

Первый взгляд на Apple Watch SDK

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


Анонсированный в июне и только что вышедший Apple Watch SDK вызвал много споров и вопросов. Первая версия имеет ограниченную функциональность, и не за горами выход версии 2.0, нужно подождать ещё несколько месяцев. Впечатления от нового SDK у разработчиков сложились разные. Одни разочарованы большим количеством ограничений, другие, напротив, впечатлены самим фактом выхода. Есть и «прослойка» тех, кто принял новый продукт достаточно сдержанно. Но в любом случае подавляющее большинство разработчиков рады выходу новой интересной забавы.
Читать дальше →

Современные способы аутентификации и безопасность iOS-устройств

Время на прочтение1 мин
Охват и читатели11K
Сегодня мы выложим два новых доклада с нашей конференции мобильных разработчиков #MBLTDev, которая прошла в конце октября в Москве.

Оба доклада посвящены безопасности: один от главы EMEA PayPal Тима Мессершмидта про современные виды аутентификации, второй – от ведущего инженера по безопасности viaForensics Андрея Беленко про безопасность iOS-устройств.

Тим призвал отказывать от паролей и рассказал, чем их можно заменить. «8,5% пользователей используют в качестве пароля Password или 123456 45% уходят с сайта вместо того, чтобы восстановить пароль или ответить на секретные вопросы. — сказал Тим. — Для повышения безопасности мы в PayPal предлагаем использовать носимые устройства или аутентификацию без пароля (например, OpenID).»


Презентация
Читать дальше →

Используем замыкания в Swift по полной

Время на прочтение6 мин
Охват и читатели46K
Несмотря на то, что в Objective-C 2.0 присутствуют замыкания (известные как блоки), ранее эппловский API использовал их неохотно. Возможно, отчасти поэтому многие программисты под iOS с удовольствием эксплуатировали сторонние библиотеки, вроде AFNetworking, где блоки применяются повсеместно. С выходом Swift, а также добавлением новой функциональности в API, работать с замыканиями стало чрезвычайно удобно. Давайте рассмотрим, какими особенностями обладает их синтаксис в Swift, и какие трюки можно с ними «вытворять».



Продвигаться будем от простого к сложному, от скучного к веселому. Заранее приношу извинения за обильное использование мантр «функция», «параметр» и «Double», но из песни слов не выкинешь.
Замыкания и трюки с ними

Эффективный JSON с функциональными концепциями и generics в Swift

Время на прочтение14 мин
Охват и читатели12K
Это перевод статьи Tony DiPasquale «Efficient JSON in Swift with Functional Concepts».

Предисловие переводчика


Передо мной была поставлена задача: закачать данные в формате JSON с Flickr.com о 100 топ местах, в которых сделаны фотографии на данный момент, в массив моделей:
Читать дальше →

#DevNightMinsk: мобильная разработка

Время на прочтение5 мин
Охват и читатели7.6K
22 ноября в минском офисе компании Wargaming | СООО «Гейм Стрим» состоялся первый белорусский #DevNightMinsk. До самой поздней ночи разработчики и геймдизайнеры обсуждали различные аспекты разработки игр. Собственным опытом делились представители компаний Wargaming, Heyworks, Alis Games и Happymagenta.

DevNightMinsk 2014 in Wargaming Conferece hall
Читать дальше →

Дайджест интересных материалов для мобильного разработчика #82 (1-7 декабря)

Время на прочтение3 мин
Охват и читатели11K
В новом дайджесте автоматизация тестирования iOS приложений, новая серия «программирования мышкой» в Swift, Kotlin для Android и локализация приложений для китайского рынка, истории фееричных провалов и новый фреймворк для гибридных приложений от AppGyver. В общем, много всего разного и интересного.

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

Как организовать отправку push-уведомлений на айфон

Время на прочтение5 мин
Охват и читатели21K
В Surfingbird мы используем пуш-уведомления, чтобы сообщать нашим пользователям срочные новости и просто информировать их об интересных материалах за день. Уже в первые недели тестов пуши показали свою огромную эффективность в плане увлечения ретеншена. Этому есть логичное объяснение – телефон у пользователя всегда с собой, в метро, в туалете, на совещаниях и т. д. Когда юзеру приходит пуш, все его внимание концентрируется на этом уведомлении.

Мы реализовали отправку пуш-уведомлений с бекенда на языке программирования Perl. Однако, когда мы только начали внедрять пуши, то столкнулись с некоторыми трудностями. О трудностях и их преодолении мы и хотим рассказать в этом посте.

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

Автоматизация тестирования iOS-приложений с применением Calabash и Cucumber

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


В процессе разработки любого приложения наступает момент, когда в связи с ростом функциональности трудозатраты на регрессионное тестирование становятся непомерно велики. Другая причина значительной трудоемкости тестирования iOS-приложений (так же как и любых других мобильных приложений) — разнообразие линейки поддерживаемых устройств и версий ОС, необходимость тестирования в альбомном и портретном режимах, а также при различных условиях соединения с интернетом. Стремление оптимизировать процесс тестирования приводит нас к необходимости его полной или частичной автоматизации.

В этой статье я расскажу о том, как мы автоматизируем тестирование наших приложений (ICQ и Агент Mail.Ru), поделюсь нашими наработками в этой области и упомяну о проблемах, с которыми мы сталкиваемся.
Читать дальше →

Локализация приложений для китайского рынка-2. Блок-листы

Время на прочтение5 мин
Охват и читатели9.4K
В предыдущей теме я лишь сделал краткий обзор требований к разработчику, который хочет выпустить свое приложение на рынке КНР. Из всех полученных вопросов два основных касались именно блок-листов и вывода денег из Китая. Первый пункт я и хочу рассмотреть более подробно.

禁 — значит «запрещено»

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

Как приложение после локализации поднялось с 40 на 5 место в Google Play

Время на прочтение2 мин
Охват и читатели14K
Известно, что локализация интерфейса увеличивает популярность мобильного приложения в регионе и lifetime value пользователя. А перевод описания и ключевых слов на странице продукта в магазине позитивно влияет на количество загрузок и продаж приложения. Но насколько значимо это влияние?

Теперь мы знаем ответ: стоило нам перевести интерфейс и описание приложения “Домашняя Бухгалтерия” на испанский, французский и немецкий, как его позиции в топе Google Play Испании, Франции и Германии начали стремительно расти. Это был редкий случай, когда наш клиент не проводил параллельно никаких рекламных кампаний. Благодаря этому мы смогли увидеть, что рост позиций обусловлен только выходом локализованной версии приложения.

Цифры, подробности и предложение поучаствовать в крутом эксперименте — под катом.
Читать дальше →

Эксперимент: бесплатно переводим кейворды и описание приложений для App Store и Google Play в обмен на статистику

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


Мы уже писали, как перевод ключевых слов для iOs-приложения увеличил количество загрузок на 767%, а также как локализация интерфейса помогла поднять приложение на десятки позиций вверх в локальных топах Google Play. В обоих случаях на рекламу приложений не было потрачено ни цента.

Мы хотим убедиться, что это не единичные случаи, а реально работающий способ сделать приложение более популярным на локальных рынках. В связи с этим мы предлагаем всем разработчикам принять участие в эксперименте:
  1. Мы бесплатно переводим описание и кейворды для страницы вашего приложения в Google Play и/или App Store с английского на любой из нашего списка 40+ языков.
  2. Вы не применяете другие методы продвижения (никакой рекламы, одним словом) в течение месяца.
  3. Вы делитесь с нами графиком загрузок, покупок и рейтингом вашего приложения в локальном сторе.
  4. Мы делимся полученной информацией со всем миром в нашем блоге.

Принять участие в эксперименте

Приглашаем на CocoaHeads Moscow 5 декабря

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


Наступила зима, а значит уже через пару-тройку месяцев Apple представит долгожданные Apple Watch. Для того чтобы разработчики могли подготовиться к запуску, в ноябре был представлен Watch Kit, позволяющий писать приложения, использующие все возможности часов. Поэтому один из наших докладчиков, Зимин Александр, поделится своим мнением о Watch Kit, расскажет, как и с чем его едят, и покажет интерактивное демо. Так как это совершенно новый Kit, Александр надеется перевести свой доклад в дискуссию, где каждый, кто успел взглянуть на этот инструмент, выскажет свои мысли или поделится опытом.
Читать дальше →

Core Data: особенности использования и синхронизация в iCloud

Время на прочтение1 мин
Охват и читатели9.8K
Настал вторник, а значит мы выкладываем очередной доклад с конференции мобильных разработчиков #MBLTDev. Доклад посвящен фреймворку Core Data, работы с которым большинство iOS–разработчиков склоны избегать из-за его сложности.

Руслан Шевчук, iOS–разработчик компании Aviasales, не побоялся разобраться с Core Data и на конференции представил доклад о том, как можно использовать его в iCloud.


Презентация

Руслан рассказал про задачи, которые Core Data решает в приложении Aviasales, его особенности, многопоточность, версионность, синхронизацию, проверку нарушения целостности связей, определение и удаление дубликатов, а также про преимущества Private Queue над Confinement Concurrency.
Читать дальше →

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

«Программирование мышкой» в Swift ч.2 — навигация

Время на прочтение8 мин
Охват и читатели22K
И снова привет, хабаровчане!

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

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

Дайджест интересных материалов для мобильного разработчика #81 (24-30 ноября)

Время на прочтение3 мин
Охват и читатели13K
Закончилась очередная неделя и в России ожидаемо подорожали iУстройства, снова с нами сборник всех издательств, вышла новая версия Unity, внутриигровые покупки обложили НДС. Еще больше новостей – в очередном дайджесте.

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

Многоликие функции Swift

Время на прочтение16 мин
Охват и читатели44K
Русский перевод очень полезной статьи Natasha Murashev The Many Faces of Swift Functions.

Хотя у Objective-C синтаксис выглядит несколько странно, по сравнению с другими языками программирования, синтаксис метода — прост и понятен. Вот небольшой экскурс в прошлое:

+ (void)mySimpleMethod
{
    // метод "класса"
    // нет параметров
    // нет возвращаемых значений
}

- (NSString *)myMethodNameWithParameter1:(NSString *)param1 parameter2:(NSNumber *)param2
{
    // метод "экземпляра"
    // первый параметр - типа NSString указатель, 
    // второй параметр  - типа NSNumber указатель
    // должен вернуть значение типа NSString указатель
    return @"hello, world!";
}


В противоположность этому, синтаксис Swift выглядит в большинстве случаев также, как и в других языках программирования, но временами он может быть более сложным и запутанным, чем в Objective-C.

Прежде чем я продолжу, я хочу прояснить разницу между «методами» и «функциями» в Swift, так как я повсеместно буду использовать оба этих термина в этой статье. Вот определение «методов», данное в книге Apple «Swift Programming Language»:

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

Стэнфордские курсы «Разработка iOS приложений» — неавторизованный конспект лекций на русском языке и 2015?

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


Я разместила иконки курсов Стэнфордского университета по разработке приложений на iOS в обратном хронологическом порядке. На первом месте стоит иконка Swift — нового языка программирования для создания приложений на iOS, объявленного на WWDC 2014. Кроме Swift реализована новая версия iOS — iOS 8. Уже известно, что Стэнфордский университет запустит зимой 2015 года новый курс CS193P с неизвестным пока названием (может быть будет что-то вроде «Developing iOS 8 Apps for iPhone and iPad»). Лектор тот же — профессор Paul Hegarty.
В традиции Стэнфорда выкладывать курс CS193P на iTunes U в виде бесплатного курса обучения, но делают это они со сдвигом во времени, чтобы не мешать платному обучающему процессу, так что в феврале-марте 2015 года (как это было в 2013 году) можно ожидать постепенное появление лекций на iTunes U. Так что время есть.
Я прошла почти все курсы профессора Пола Хэгарти — от iOS 5 до iOS 7 — до самого конца (смотри Github ).
Для подготовки к перспективному курсу по iOS 8 разместила на своем сайте «Разработка iOS приложений» неавторизованные конспекты лекций, тексты домашних заданий и примеры их решения на русском языке для последнего доступного в настоящее время обучающего курса «Developing iOS 7 Apps for iPhone and iPad», запущенного Стэнфордским университетом в семестре «осень 2013 — зима 2014 года» на iTunes U.

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

10 языков, на которые стоит перевести вашу мобильную игру

Время на прочтение3 мин
Охват и читатели37K
Каждый третий заказчик, приходящий к нам в Alconost за локализацией, задает один и тот же вопрос: “а на какие еще языки посоветуете сделать перевод моей игры/приложения/сайта?”.

Чтобы ответить на этот вопрос хотя бы для разработчиков мобильных игр, мы изучили объемы продаж мобильных игр в Google Play и App Store в разных странах. Результат нас так удивил, что вместо обычной статьи мы захотели сделать видеоролик:



Чуть больше информации про топ-10 языков для локализации мобильных игр — под катом.
Читать дальше →

Обходим защиту iOS клиента Dropbox

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


Что в первую очередь сделает iOS разработчик, если перед ним встанет задача спрятать пользовательские данные от любопытных глаз? Конечно же, встроит экран парольной защиты. Особо хитрый разработчик даже не будет хранить установленный пользователем пароль в NSUserDefaults, а аккуратно спрячет его в связку ключей — в этом случае приложение в глазах как его, так и заказчика, сразу же перемещается в разряд «сверхзащищенных».
Мы не будем углубляться в описание опасностей хранения ключа в открытом доступе — ведь есть гораздо более интересный способ обхода такой защиты.
Читать дальше →

Опыт использования MVVM в реальных проектах

Время на прочтение1 мин
Охват и читатели26K
Мы продолжаем выкладывать видео выступлений с нашей первой конференции мобильных разработчиков #MBLTDev. Следующий доклад — от iOS-разработчика компании «Одноклассники» Юрия Буянова «Опыт использования MVVM в реальных проектах».


Презентация.

Доклад был посвящён практическим аспектам разработки iOS-приложений с использованием архитектуры MVVM. В частности рассматривались способы осуществления навигации и реализации списков в рамках такой архитектуры. Для слушателей, незнакомых c предметом, в начале доклада было сделано небольшое введение в MVVM и ReactiveCocoa. Также были показаны слайды с белочкой, совушкой и единорогом.
Читать дальше →