Рубрика «xcode» - 3

В этом дайджесте рефакторинг, UI, UX и анимации, возвращение триала в App Store, Kotlin как “прорыв года”, хакатоны для развития команды, скрытые игровые механики и заработки FaceApp.

Дайджест интересных материалов для мобильного разработчика #307 (15 — 21 июля) - 1Читать полностью »

Debug Area — полезная функция в работе iOS разработчика в Xcode. Как только мы начинаем осваивать разработку под iOS, и пытаемся отойти от привычного и любимого print метода, и найти более быстрые и удобные методы понимания состояния системы в определенный период мы начинаем изучать область дебага (Debug Area).

Скорее всего, в Debug панель ваш взгляд упадёт до того, как вы будете понимать, что именно там происходит. При первом падении приложения нижнее меню открывается автоматически, оно изначально может послужить помощью для понимания проблемы (Вспомним старую добрую “Fatal error: Index out of range”), в основном в самом начале вы не будете понимать, что от нас хочет Xcode и приметесь гуглить ошибки, но по ходу роста всё больше и больше информации станет понятной.

С самого начала программист старается оптимизировать свою работу. Для этого мы стремимся понять в какой момент наша программа перешла в некорректное состояние. И тут в зависимости от точки в которой находится эволюция программиста, методы могут разниться. Сначала как правильно Debug осуществляется методом “print()”, потом идёт расстановка Breakpoints и вызов методов “po”, далее ознакомление с Debug Variable Input (области рядом с консолью в Xcode), а далее приходит понимание и способов компиляции кода в процессе остановки на Breakpoint методов — “expression” (По крайней мере, такая была эволюция у меня).

Давайте попробуем разные способы которые нам помогут понять и изменить состояние нашего приложения. Самые простые вроде “print()”, и “po” рассматривать не будем, я думаю, вы и так понимаете их суть и умеете применять.

Создадим простое приложение с одним экраном в котором будем всего один тип ячеек (TableViewcell) c двумя элементами внутри: UIImageView и UILabel. В ячейках будем писать её порядковый номер, а в картинку ставить либо image1, либо image2.

Метод tableViewCellForRowAtIndexPath будет создавать для нас ячейки, проставлять данные и возвращать:

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

Preface: it's all about the research approach

This article is an example of how we can do a research of the Swift Standard Library functions behavior building our knowledge not only on the Library documentation but also on its source code.

Unrecoverable Errors

All events which programmers call "errors" can be separated into two types.

  • Events caused by external factors. Like network connection failure.
  • Events caused by programmer's mistake. Like reaching a switch operator case which should be unreachable.

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

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

    func testAscynFunction() {
        someAsyncFunction()
    }

    func someAsyncFunction() {
        let bg = DispatchQueue.global(qos: .background)
        bg.asyncAfter(deadline: .now() + 5) {
            XCTAssert(false, "Something went wrong")
        }
    }

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

Для решения такой проблемы в тестах есть одна замечательная вещь: Читать полностью »

image

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

О том, как я решаю данную проблему — под катом.
Читать полностью »

Xcode 10.2, macOS Mojave 10.14.4, iOS 12.1 и другие бета-версии - 1

Вышли новые беты Xcode, macOS Mojave и iOS — и вот основные моменты, которые я усвоил.

Swift 5 для Xcode 10.2 beta

Swift

Прежде всего, последняя бета-версия Xcode идет в комплекте с новой версией Swift:

Apple Swift 5.0 (swiftlang-1001.0.45.7 clang-1001.0.37.7)
Target: x86_64-apple-darwin18.2.0
ABI version: 0.6

Начнем с самых волнующих новостей:

Приложения на Swift больше не включают в себя DLL для стандартной библиотеки Swift и оверлеи Swift SDK в версиях для устройств на iOS 12.2, watchOS 5.2 и tvOS 12.2. В результате Swift-приложения уменьшаются в размере при развертывании для тестирования в TestFlight или при сжатии архива для дистрибутива.

ABI наконец-то станет стабильным, и это отличные новости. На мой взгляд, сегодня это одна из ключевых проблем Swift — не из-за побочных эффектов, а из-за невыполненных обещаний. Некоторые мои знакомые даже переписывают расширения для Apple Watch на Objective-C, чтобы уменьшить размер бинарного файла (примерно с 15 Мб до 1 Мб). Узнать больше о состоянии ABI можно по ссылкам: Информационная панель Swift ABI и Манифест стабильности Swift ABI.
Читать полностью »

Новогодние праздники прошли, а мое стремление писать полезные и не очень статьи — нет! Сегодня поговорим о UITableView, работе с UITableViewDataSource и переиспользовании ячеек. Затронем как установить рут контроллер без сториборда, ошибки при работе с таблицей, лейаут и большой заголовок для UINavigationBar.

Для тех, кому нравятся несмешные шутки, я записал ролик на YouTube. Ну а здесь всё будет серьезно. Давайте начнём.
Читать полностью »

Об этом нет туториалов и объявлений на Avito. Об этом не пишут на хабре (уже пишут?). Обзор вашего приложения хоть и мог быть несправедлив, но явно был неподкупен. Или вам так казалось?
Если вы следите за конкурентами, или, не дай бог, вкладываете силы в ещё одно приложение-гороскопы, то сталкивались с нарушениями конкурентами гидлайнов. Я расскажу, то что знаю.
Читать полностью »

Вступление

При поиске в google по запросам Core Data или Autolayout, первый результат поиска содержит обновляемую информацию в «новом формате документации». Потратив определенный объем времени, читая и следуя инструкциям, достаточно не сложно ознакомиться с основными инструментами предоставляемыми той или иной технологией(особенно если чтение на английским не является для вас серьезным препятствием).

Аналогичную информацию можно найти и по локализации продукта. Но в отличии от примеров указанных выше она:

  • Имеет старый менее удобный, как по мне, формат для чтения.
  • Она даже не будет первой в выдаче по запросу «site:developer.apple.com internationalization»
  • И что самое, интересное имеет в заголовке очень любопытное замечание: «Important: This document is no longer being updated. For the latest information about Apple SDKs, visit the documentation website.»

A первой в выдаче мы видим страницу, которая в большей мере выглядит, как инструмент продажи локализации разработчикам и менеджерам, когда основной интерес представляют разрозненные ссылки в разделах WWDC Session Videos и Documentation and Sample Code.
Читать полностью »

— “Какая-то библиотека, кто-то обновил… Хейтер тут причем? Почему мне, отличному разработчику, нужно тратить время на эту статью?

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


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