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

Google обновила все компоненты Google Play. Это Google Play Музыка, Google Play Фильмы, Google Play Пресса, Google Play Игры, Google Play Книги и естественно сам Google Play Market.

У каждого приложения появился Material Design. Это основное нововведение Android 5.0 Lollipop. Основные функции этих приложений не изменились.
Читать полностью »

Всем привет! Хочу поделиться переводом статьи, интересной для многих увлекающихся системами умных домов и любителей Apple.

image

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

Каждую неделю на Kickstarter'е появляются системы умных домов. Кажется, что все в отрасли хотят изобрести свой собственный велосипед.

На протяжении многих лет мы часто задавались вопросом, что произойдет, если компания Apple перенесет свой знаменитый пользовательский опыт на системы умного дома.
Читать полностью »

Одними из самых востребованных классов в UIKit до выхода iOS версии 8 являлись UIAlertView и UIActionSheet. Наверное, каждый разработчик приложений под мобильную платформу от Apple рано или поздно сталкивался с ними. Показ сообщений или меню выбора действий — это неотъемлемая часть практически любого пользовательского приложения. Для работы с этими классами, а точнее для обработки нажатий кнопок, программисту требовалось реализовывать в своем классе методы соответствующего делегата — UIAlertViewDelegate или UIActionSheetDelegate (если не требовалось чего-то сверх, то достаточно было реализовать метод clickedButtonAtIndex). На мой взгляд это очень неудобно: если внутри объекта создавалось несколько диалоговых окон с разными наборами действий, то их обработка все равно происходила в одном методе с кучей условий внутри. С выходом 8 версии iOS в составе UIKit появился класс UIAlertController, который пришел на смену UIAlertView и UIActionSheet. И одной из его главных отличительных черт является то, что вместо делегатов он использует блочный подход:

    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Hello" message:@"Habr!" preferredStyle:UIAlertControllerStyleAlert];
    
    [alertController addAction:[UIAlertAction actionWithTitle:@"Action" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
        // код обработчика кнопки
    }]];

Такой подход позволяет писать более структурированный и логичный код. Отныне программисту больше не требуется разделять создание диалогового окна и обработку событий — UIAlertController устраняет это недоразумение, но одновременно с этим привносит историческую несправедливость из-за невозможности использования в iOS 7 и более ранних версиях. Решить эту проблему можно несколькими способами:

  • Не обращать внимание на UIAlertController и продолжать использовать устаревшие UIAlertView и UIActionSheet.
  • Использовать нестандартные диалоговые окна. Программист либо пишет собственную реализацию, что приводит к увеличению временных затрат, либо подключает сторонние компоненты (например, SIAlertView), использование которых имеет ряд недостатков:
    1. программные модули с хорошей поддержкой можно пересчитать по пальцам (зачастую их создатели быстро забрасывают это неблагодарное дело);
    2. если в проекте используются несколько компонентов от разных разработчиков, то при их взаимодействии могут возникать проблемы (редко, но это возможно).

  • Проверять версию iOS и создавать либо UIAlertController, либо UIAlertView или UIActionSheet.

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

На дворе ноябрь, а на DaData.ru — новые возможности:

  • определение геокоординат,
  • SMS в дневное время,
  • новый адресный алгоритм,
  • оптимизация под смартфоны,
  • статистика в личном кабинете, 
  • модуль для iOS.

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

Мой пост На здоровье: 5 гаджетов для самых маленьких теперь смело можно дополнить еще одной новинкой: «умными» часами от AT&T, предназначенными именно для детей. Вернее, для их родителей.

image

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

Привет!

Так случилось, что я довольно давно занимаюсь разработкой под iOS, но вот незадача — никогда не писал игры. После змейки в 13 лет под IBM 386 наступил перерыв до 2014 года, когда я набрался сил воплотить теплую ламповую мечту в реальность. Что из этого получилось? Графика сводилась так:
Раннер под iOS с пятью персонажами
А геймплей хотелось сделать похожим на это:
Раннер под iOS с пятью персонажами
Если интересно, прошу под кат! (много картинок!)Читать полностью »

Новостей в связи с праздниками не очень много, но все же: вышла статья о «визуальном» программировании в Xcode, Xamarin представил бесплатные планы для студентов, объявлены финалисты Samsung Gear App Challenge, у Parse вышли Push Experiments и ParseUI. Да, еще же в «Южном парке» вышла серия про free-to-play игры!

Дайджест интересных материалов для мобильного разработчика #78 (2 9 ноября)Читать полностью »

Эту информацию я собирал примерно год, но она до сих пор актуальна (лето 2014). Я не сотрудник яблочной корпорации, но мне очень помогли некоторые люди, связанные с Apple. В статье я постараюсь рассказать о этапах разработки девайсов, внутреннем ПО и кое что еще.
Читать полностью »

Opera Mini 9 для iOS Сегодня мы выпускаем обновление Opera Mini 9 для iOS, которое улучшает работу с экспресс-панелью и ещё лучше сжимает самую толстую часть трафика — видео. В уже знакомой вам Opera Mini на платформе iOS под капотом работает три режима: 1) обычный, на основе системного компонента WebView (по сути, WebKit), 2) тот же WebView с оптимизацией ресурсов на наших серверах Turbo и 3) режим Opera Mini, который отрисовывает страницы на сервере, сжимает их и отправляет на клиент в переработанном и очень компактном виде без лишних теней и анимаций, но зато легче, часто до 90%.

И если режимом Opera Mini для сложных медийных сайтов или приложений пользоваться не всегда удобно (зато новости в метро читать или экономить трафик в роуминге — милое дело), то режим Turbo ничего вам не сломает. Вот, скажем, пример: пишу пост из отпуска в Египте, где Хабр почему-то забанен, но если включить Turbo, то всё в порядке.

Как выглядит Хабр из Египта

Opera Mini 9 для iOS

Но сжатия картинок бывает мало: самая толстая и плохо сжимаемая на лету часть интернета — это видео. Думаю, многие их вас слышали про компанию Skyfire, которую мы приобрели вместе с их технологиями сжатия, и прокси-клиент Opera Max, который сжимает ваш системный трафик, пуская его через VPN-туннель. И вот в Opera Mini 9 для iOS мы впервые показываем режим Boost, который при включённом Opera Turbo сжимает видео и вам больше не нужно разглядывать спиннер вместо смешного видео.

Opera Mini 9 для iOSЧитать полностью »

Привет!

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


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