iOS-дайджест №6 (17 мая – 30 мая)

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!


Меньше недели остается до конференции Apple WWDC, давайте посмотрим, какие ожидания у сообщества разработчиков и какие события произошли в мире iOS-разработки за последние пару недель.

Новости индустрии


  • Рубрика «Наши на WWDC»: на конференцию приглашены 8 студентов из России. Они смогут бесплатно посетить событие (напомним, кроме того, что билет, перелёт и размещение стоит ощутимых финансов, надо ещё поучаствовать в лотерее на розыгрыш билета) и сфотографироваться с Тимом Куком.
  • Apple подогревает общественный интерес и создает инфоповоды к 3 июня. Например, iPod Touch был обновлен впервые за четыре года, при этом дизайн не претерпел изменений, в основном изменился только процессор и цена устройства – версию с розовым корпусом с 32ГБ на борту в России можно купить за 18990 рублей.
    А вам как мобильным разработчикам приходится делать поддержку iPod Touch для своих приложений? Тестируете ли на таком типе устройств? В конце статьи опрос.
  • MacBook Pro тоже настигло обновление. Правда, опять же, улучшился только процессор, ну и в очередной раз (уже в третий!) попытались решить проблемы с клавиатурой.
  • Разработчики, как обычно, ждут грандиозных анонсов и изменений от конференции и делятся об этом в социальных сетях: кто-то ждёт фреймворка для декларативного UI, кто-то Swift-подобного языка вместо JavaScriptCore, а кто-то — Terminal и Xcode для iPad:


    Какие у вас ожидания от WWDC в этом году? Чего не хватает iOS-разработчику для более комфортного программирования? Поделитесь болью в комментариях.
    Кстати, Пол Хадсон, твит которого приведён выше, нам хорошо знаком: он приезжал в Москву на конференцию Mobius в прошлом году и рассказывал про то, как писать более безопасный код, используя Swift-протоколы, дженерики и экстеншены. А мы тем временем провели на прошлой неделе Mobius 2019 Piter — подробностями поделимся в отдельном посте.

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

Новости iOS-разработки


  • Для более быстрого удаления объектов из CoreData рекомендуется использовать NSBatchDeleteRequest, но будьте бдительны с ним в случае, если в вашем приложении сущности имеют связи и настроены правила удаления; происходит удаление нескольких типов объектов; используется не SQLite хранилище под CoreData. В противном случае можно получить интересные артефакты в хранилище и падения в runtime. Более подробно в статье Using NSBatchDeleteRequest to delete batches in Core Data.
  • В дополнение про CoreData разбираемся с тем, как правильно хранить картинки для своих сущностей (например, миниатюрные превью): рядом с остальными атрибутами как BinaryData поле или на файловой системе отдельно от CoreData хранилища.
  • На технических интервью часто слышу от кандидатов, что в Swift можно забыть и отказаться от использования @autoreleasepool. Если вдруг ваше приложение создает UIImage или CoreData объекты в цикле, то это потенциальная утечка памяти, которая может привести к падению приложения при больших итерациях в цикле. Разобраться с принципом работы авторелиз пулов можно после прочтения статьи @autoreleasepool uses in 2019 Swift на https://swiftrocks.com.
  • Одно из самых полезных нововведений в Swift 5.1 — это возможность находить различия между двумя коллекциями из коробки, что, несомненно, будет удобно при обновлении списка UITableView, чтобы не перегружать всю таблицу или писать свой код для поиска изменений между двух массивов данных. Пример использования тут.
  • После того как научились правильно обновлять список данных без полной перезагрузки в предыдущем пункте, надо уметь красиво показать пользователю детали по нажатию на элемент списка. Для этого разбираемся с переходами между экранами для случаев, когда стандартных анимаций переходов не хватает. Большая серия статей в четырех частях расскажет про это более подробно.
  • Многих начинающих разработчиков отталкивает изучение языка Swift из-за его кажущейся ограниченности в использовании (только для iOS-разработки). Но в последнее время Swift всё чаще используется для решения задач Machine Learning, о чём говорят убедительные доводы в статье Why Swift May Be the Next Big Thing in Deep Learning.
  • Правильно расставить autolayout constraints бывает также сложно, как решить в какую сторону повернуть стрелочку на UML диаграмме классов в своей мобильной архитектуре. Чтобы это исправить, учимся решать проблемы с констрейнтами без перезапуска приложения.
  • И напоследок: если вы уже реализовали все фичи в своем приложении и пофиксили все баги, обратите внимание на вопросы доступности, на этой неделе был тред в Twitter на эту тему с практическими советами для интересующихся.
Источник: https://habr.com/ru/company/jugru/blog/454018/


Интересные статьи

Интересные статьи

Одна из самых важных (на мой взгляд) функций в Битрикс24 это бизнес-процессы. Теоретически они позволяют вам полностью избавиться от бумажных служебок и перенести их в эл...
SWAP (своп) — это механизм виртуальной памяти, при котором часть данных из оперативной памяти (ОЗУ) перемещается на хранение на HDD (жёсткий диск), SSD (твёрдотельный накоп...
Много всякого сыпется в мой ящик, в том числе и от Битрикса (справедливости ради стоит отметить, что я когда-то регистрировался на их сайте). Но вот мне надоели эти письма и я решил отписатьс...
Ваш сайт работает на 1С-Битрикс? Каждому клиенту вы даёте собственную скидку или назначаете персональную цену на товар? Со временем в вашей 1С сложилась непростая логика ценообразования и формирования...
Cтатья будет полезна тем, кто думает какую выбрать CMS для интернет-магазина, сравнивает различные движки, ищет в них плюсы и минусы важные для себя.