6 заметок с тегом

iOS

Москва. Метро. Авторизация вайфай

Ура, модераторы наконец апрувнули mauth в Апсторе!

mauth icon  mauth on the App Store

Все посты об этом — по тегу mauth.

Процесс прохождения модерации был очень долгим. Приложение работает стабильно и безопасно, но информации о его работе дважды оказалось недостаточно для review team. Поэтому mauth получил два metadata rejected, и трижды проходил ревью. Все это заняло около месяца.

Поэтому, сейчас в Апсторе более ранняя сборка, которая и была актуальна месяц назад. Она работает по-старому — полуавтоматически, но стабильно.

За время, пока mauth проходил ревью, в Сторе появилось еще одно интересное приложение почти на эту же тему! Метроблок был адблоком для метро; он появился, и — странно — быстро пропал. А еще за год до этого появился легендарный Автовход для Андроидов.

Мне очень нравится, что началась движуха вокруг метрошного вайфая. Это может привести к капитуляции рекламного фашизма, которое нам устроил провайдер вайфая :-) Подробнее об этом мой прошлый пост.

Кстати, на бета-тестирование приложения записалось 410 бета-тестеров! Это мой небольшой личный рекорд, раньше никогда не набиралось больше 20.

Mauth остается моим хобби-проектом, которым я занимаюсь в свободное время, чтобы тратить меньше времени для подключения к сети метро. Хотя, конечно, если дорогой (и клевый) Билайн проведет ЛТЕ во все перегоны, то потребности в вайфае больше не будет ;-) Но впереди много интересных планов!

Open Source! [BY NC SA]

 1 комментарий    23   2015   App Store   aйфон   iOS   mauth   метро

iOS 9 marked difference

We are familiar and well know all Swift changes between 2.0 and 2.1. And also difference between Xcode 6 and 7. But there are some changes between iOS 8 and 9.1 that we can’t ignore. Because... apps became malfunctioned.

CanOpenURL

Most significant and despicable difference is between iOS 9 and 9.1. The canOpenURL does not work as expected anymore. All checks for that are failing at this time.

if app.canOpenURL(url) {
   app.openURL(url)
}

To understand what happened, see this post: Quick Take on iOS 9 URL Scheme Changes.

But TL;DR is that you must explicitly set an array of URL schemes that your app may open. So add a key called LSApplicationQueriesSchemes to your Info.plist. And the value of this key is an array of URL schemes you want to be opened. Like: twitter, fb, instagram, vk.

More generally, xml for this in Info.plist should look like:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>twitter</string>
    <string>instagram</string>
    <string>comgooglemaps</string>
    <string>yandexnavi</string>
</array>

3D Touch

Next big thing is how to fast implement quick actions for 3D-touching app icon.

As I have no 3D Touch devices (have just Force Touch one) and have no expertise in there, I just provide a link where it described very well: Add 3D Touch quick actions tutorial.

See also:

Let’s code!

 5   2015   in English   iOS   Swift   Xcode   программирование

Авторизация в Московском метро

cover black

Обновлено—2. Приложение для авторизации в метро для iOS появилось Апсторе!

Обновлено. Бета-тестирование завершилось. Спасибо всем за участие! «Москва. Метро. Авторизация вайфай» отправилось в Апстор на проверку. Нет рекламе прокладок в Московском метро! Подписывайтесь на меня в твитере @m4rr — следите за новостями. А пока зацените мой стартап — Paste.

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

Новый логотип вайфая

За две недели в бета-тестирование было выпущено 10 билдов. Спасибо дорогим бета-тестерам за фидбек! Отдельное спасибо @iShift за помощь в построении гипотез, и @r3s3t за прекрасную иконку!

Приложение работает так: телефон подключается к вайфаю в вагоне, вы запускаете приложение, и — вуаля! — приложение автоматически проходит 9 кругов авторизации вместо вас и на айфоне появляется интернет.

Это приложение пока не в Апсторе Если вы хотите его попробовать — напишите мне письмо и я отправлю вам приглашение.

***

Проблема разработки такого приложения в том, что тестировать его очень сложно. За время поездки на метро, нужно придумать гипотезу, почему очередной способ не сработал. Вечером дома обновить алгоритм, и только на следующий день проверить работу нового алгоритма. Дальше процесс повторяется. Такой замедленный хакатон.

За время работы над приложением я подробнее узнал про сетевой сервис Captive portal, который для этого и был создан. Как это работает?

Айось, после подключения к вайфаю, делает первый запрос на какой-нибудь captive-check.apple.com, и если получает ожидаемый ответ, то считает, что интернет доступен. Если ответ неожиданный — показывает специальное окно, в котором загружается страница логина. В Старбаксе, например, именно так.

Но разработчики авторизации в метро специально [1, 2, 3] пропускают запрос на каптив-портал, и айось получает ожидаемый успешный ответ. Но если после этого, вы пытаетесь открыть любой сайт, то вместо него вы все равно получаете страницу авторизации! И новости про Coбянинa, конечно.

Короче, я считаю, что это неправильно, и приложение отлично с этим справляется!

Open Source! [BY NC SA]

Дополнение про Size Classes

Сегодня появилась видеозапись моего доклада на августовской встрече разработчиков CocoaHeads Moscow. Ура!

Хочу еще немного добавить про особенности сайз-классов. В докладе я немного упомянул про специальные отступы от границ экрана. Это Leading Margin и Trailing Margin по бокам, и Top и Bottom Layout Guides сверху и снизу.

Leading Margin и Trailing Margin по бокам, и Top и Bottom Layout Guides сверху и снизу.

Например, вы проектируете единый интерфейс для айфона и айпада. И нужно сделать так, чтобы на разных дивайсах у кнопок, расставленных по бокам, были ожидаемые пользователем отступы. Для этого можно расставить кнопки именно относительно ведущего — слева — и замыкающего — справа — отступа. То есть, если нативный отступ слева на айфоне — это 8 пк, а на айпаде — 20 пк, то кнопки автоматически встанут как надо.

То же самое выполняется и для вертикальных отступов. Если для разных устройств характерны разные изначальные отступы сверху и снизу, то элементы правильно расположатся сами собой.

Кроме того, интересно, что Leading и Trailing Margin меняются местами, если на устройстве установлен какой-нибудь язык, который пишется справа налево (RTL). Для обычных LTR-языков они находятся слева и справа, соответственно.

 16   2014   CocoaHeads   iOS   Xcode

Size Classes

В конце августа, на ежемесячной встрече разработчиков приложений для iOS и OS X CocoaHeads Moscow, я рассказывал про новую концепцию Size Classes, представленную Эплом на WWDC-2014. Это совершенно новый способ построения адаптивных интерфейсов для айос-дивайсов. Немного коснулся интересных тонкостей о том, как их использовать в приложениях на айос-8, и как их бекпортить на айос-6.

Встреча традиционно проходила в офисе Мейл-ру. Там точно была видеозапись и, кажется, даже трансляция. У меня пока этой записи нет, но вот слайды с презентации:

Очень интересно, какие вопросы появятся у читателей моего блога. Буду рад ответить :)

На этой встрече также докладывал Михаил Байнов про массивы и структуры ANSI C/C99, и Саша Зимин рассказывал материальный дизайн кнопок из нового Андроида-Л и показывал как это сделать на Свифте; с его презентации также доступны слайды.

Upd. Видеозапись доклада: http://blog.m4rr.ru/all/size-classes-addition/

 7   2014   CocoaHeads   iOS   Objective-C   Swift   Xcode

iOS 7 is more original iPhone OS than ever

It seems to be iOS 7 inherits abandoned original iPhone OS design.

Look at this awesome bottom dashboard we had in iPhone OS. iOS 7 will have the same. Brilliant!

Original iPhone OS and iOS 7.

Also, look at missing search icon on the left of pagination. Wow!

iOS 6.

Not like iOS 6!

 6   2013   aйфон   in English   iOS   дизайн