В этом дайджесте рефакторинг, UI, UX и анимации, возвращение триала в App Store, Kotlin как “прорыв года”, хакатоны для развития команды, скрытые игровые механики и заработки FaceApp.
Рубрика «xcode» - 3
Дайджест интересных материалов для мобильного разработчика #307 (15 — 21 июля)
2019-07-21 в 14:18, admin, рубрики: App Store, apple, firebase, flutter, kot;in, swift, swiftUI, UX, ux дизайн, xcode, Блог компании Цифровые Экосистемы, маркетинг мобильных приложений, нейросети, разработка мобильных приложений, Разработка под android, разработка под iOS, рефакторингПродвинутый Debug
2019-07-20 в 15:42, admin, рубрики: debug, expression, LLDB, swift, xcode, Тестирование IT-систем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 будет создавать для нас ячейки, проставлять данные и возвращать:
Processing of Unrecoverable Errors in Swift. The Research Approach
2019-02-19 в 12:44, admin, рубрики: swift, xcodePreface: 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.
Написание Unit тестов на Swift для проверки асинхронных задач
2019-02-10 в 20:47, admin, рубрики: swift, swift 4, unit tests, xcodeСегодня хочу вам быстренько рассказать как тестировать асинхронный код.
Представьте ситуацию, что вам надо загрузить данные из интернета и проверить все ли работает нормально, либо еще какую-нибудь задачу, которая выполняется асинхронно. И как же его протестировать? Что если попробовать так же как и обычный синхронный код?!
func testAscynFunction() {
someAsyncFunction()
}
func someAsyncFunction() {
let bg = DispatchQueue.global(qos: .background)
bg.asyncAfter(deadline: .now() + 5) {
XCTAssert(false, "Something went wrong")
}
}
Такой тест вернет нам положительный результат, так как метод не будет ждать всех наших асинхронных задач.
Для решения такой проблемы в тестах есть одна замечательная вещь: Читать полностью »
Статические Generic таблицы
2019-02-05 в 17:30, admin, рубрики: iOS, swift, xcode, разработка под iOSВсем нам часто приходится сталкиваться со статическими таблицами, они могут являться настройками нашего приложения, экранами авторизации, экранами «о нас» и многими другими. Но часто начинающие разработчики не применяют никакие паттерны разработки подобных таблиц и пишут все в одном классе немасштабируемую, негибкую систему.
О том, как я решаю данную проблему — под катом.
Читать полностью »
Xcode 10.2, macOS Mojave 10.14.4, iOS 12.1 и другие бета-версии
2019-01-28 в 17:01, admin, рубрики: iOS, ios development, swift, xcode, Блог компании Badoo, Программирование, разработка под iOS
Вышли новые беты 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. Для начинающих
2019-01-17 в 12:54, admin, рубрики: datasource, iOS, swift, tableview, UI, uikit, UITableView, UITableViewCell, uitableviewcontroller, uitableviewdatasource, xcode, разработка под iOSНовогодние праздники прошли, а мое стремление писать полезные и не очень статьи — нет! Сегодня поговорим о UITableView, работе с UITableViewDataSource и переиспользовании ячеек. Затронем как установить рут контроллер без сториборда, ошибки при работе с таблицей, лейаут и большой заголовок для UINavigationBar.
Для тех, кому нравятся несмешные шутки, я записал ролик на YouTube. Ну а здесь всё будет серьезно. Давайте начнём.
Читать полностью »
Сколько стоит Review в AppStore
2018-12-21 в 18:11, admin, рубрики: App Store, iOS, review, swift, xcode, Монетизация мобильных приложений, обзор, приложений, разработка мобильных приложений, разработка под iOSОб этом нет туториалов и объявлений на Avito. Об этом не пишут на хабре (уже пишут?). Обзор вашего приложения хоть и мог быть несправедлив, но явно был неподкупен. Или вам так казалось?
Если вы следите за конкурентами, или, не дай бог, вкладываете силы в ещё одно приложение-гороскопы, то сталкивались с нарушениями конкурентами гидлайнов. Я расскажу, то что знаю.
Читать полностью »
Интернационализация (локализация) в XCode (iOS-macOS)
2018-12-05 в 17:36, admin, рубрики: xcode, разработка под iOS, Разработка под MacOSВступление
При поиске в 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.
Читать полностью »