2ГІС давно хотів поділитися з користувачами айфонів своїми знаннями про телефонних номерах компаній з довідника. Android-платформа давала таку можливість, а ось під iOS відповідного інструменту довго не було.

В червні ми їздили на WWDC 2016, і на одній із сесій хлопці з Apple обмовилися, що нарешті-то можна робити «gorgeous astonishment» — визначник номерів під iOS 10. Нашій радості не було меж, але до пори до часу: як Apple любить, фічу вона надала з низкою обмежень.

Читати далі →


Пост написаний за мотивами статті Mocking in Swift with Cuckoo by Godfrey Nolan
По боргу своєї "" мобільним розробником, постала переді мною завдання: розібратися зі створенням і використанням Моков для юніт-тестування. Моїм колегою була рекомендована бібліотека Cuckoo. Став я з нею розбиратися і ось що з цього вийшло.
Документація
Прочитавши документацію на гітхабі мені, на жаль, не вдалося "завести" Cuckoo в моєму проекті. Через CocoaPods цей фреймворк був встановлений, але от з Run-скриптом виникли проблеми: запропонований приклад не створював файл
GeneratedMocks.swift
в папці з тестами, та я б і не розібрався чому, якби не знайшов через гугл статтю, яку згадав на початку посту.

Читати далі →

Не займаючись ніколи раніше нативної розробкою під мобільні платформи, і в цей раз вирішив піти "легким шляхом" — освоїти React Native. Найбільшою трудністю стало додавання іконки додатка(AppIcon) і екрану завантаження (Launch Screen). Про що й хочу розповісти в цій статті тим, хто освоює React Native.
Читати далі →

Чому VIPER це поганий вибір для вашого наступного програми

Цей пост є вільним перекладом статті Why VIPER is a bad choice for your next application by Sergey Petrov
За останній рік про VIPER писали всі, кому не лінь. Ця архітектура реально надихає розробників. Але більшість статей, насправді, досить упереджені. Вони лише показують крутизну цього архітектурного патерну, замовчуючи про його негативні сторони. Адже проблем у нього не менше (а може навіть і більше) ніж у інших. І в цій статті я постараюся пояснити, чому VIPER зовсім не такий хороший, як про нього говорять, і чому він не підійде для більшості ваших додатків.

Читати далі →

Патерни проектування, погляд iOS розробника. Частина 1. Стратегія


Зміст:
Частина 0. Сінглтон-Одинак
Частина 1. Стратегія
Нагадаю, що в цій серії статей, я розбираю книгу "Патерни проектування" Еріка і Елізабет Фрімен. І сьогодні ми вивчимо патерн "Стратегія". Поїхали.
Звідки ростуть ноги (і крила)
Автори книги розповідають нам історію про створення програми SimUDuck. Почнемо з реалізації початкового стану додатки: у нас є абстрактний клас
Duck
і два його спадкоємця:
MallardDuck
та
RedheadDuck
. Тут же ми стикаємося з першою складністю: в Objective-C і Swift немає абстрактних класів.

Читати далі →

Патерни проектування, погляд iOS розробника. Частина 0. Сінглтон-Одинак

Я почув і забув.
Я записавши і є запам'ятав.
Я зробив і зрозумів.
Я навчив іншого, тепер я майстер.
(Ст. Ст. Бублик)

Невеликий вступ.
Я не даремно виніс в початок посту цитату українською мовою. Справа в тому, що саме ці слова я почув від свого викладача програмування на другому курсі університету, і саме в такому вигляді я згадую ці слова досі. Як ви можете здогадатися, ця цитата є відсиланням до висловлення Конфуція, але в ній є дуже важливе доповнення про досягненні майстерності.
І саме ці слова і надихнули мене на написання даної серії постів. Справа в тому, що я — початківець iOS розробник, і я дуже хочу розібратися в шаблони проектування. І я не придумав кращого способу, ніж взяти книгу "Патерни проектування" Еріка і Елізабет Фрімен, і написати приклади кожного патерну на Objective-C і Swift. Таким чином я зможу краще зрозуміти суть кожного патерну, а також особливості обох мов.

Читати далі →

IT-meetup Superjob «iOS — архітектура дизайну, коду, деплоя» (звіт, презентації, відео)

Відео, доповіді та короткий звіт для тих, хто не доїхав.

У новому офісі Superjob на Малій Дмитрівці відбувся перший в 2017 році митап з мобільного iOS-розробці. Додаток Superjob для пошуку роботи стабільно «проживає» в топі AppStore, а рахунок установок давно йде на мільйони. Ми першими запустили додаток для корпоративних користувачів, і сьогодні тисячі роботодавців вже навіть і не звертаються до веб-версії. Так що досвід у нашої команди дійсно унікальний. Таким зазвичай служби безпеки ділитися не дозволяють. Але у нас СБ немає — заборонити вечірку було нікому.


Читати далі →

Трохи про Swift runtime або куди зник NSObject

Привіт друзі! Я з тих, кому нудно просто смикати за ниточки, що стирчать з чорної коробки, хочеться побачити все своїми очима, як воно працює під капотом. Ми поговоримо з вами про рантайм, так-так рантайм. Для наших дослідів розглянемо старого доброго дідуся Objective C і революційного, але поки ще перебуває в стадії розвитку, Swift. Нам з вами потрібно пірнути практично на саме дно абстракцій, які дбайливо придумали програмісти Apple. Давайте трохи розберемося, навіщо взагалі знадобилося розробляти нову мову. Я чув багато негативних відгуків в самому початку, особливо від вже досвідчених розробників Objective C. Якщо подивитися уважніше на новий мову Swift, він на мій погляд значніше дорослішим і серйознішим. По-перше, він написав на мові С++ на відміну від Сі, який лежить в основі Objective C. Я тут висловлюю лише свої суто особисті упередження, з якими можна погодитися, можна і посперечатися.

Читати далі →

IT-meetup Superjob «iOS — архітектура дизайну, коду, деплоя»

26 січня запрошуємо iOS-розробників на зустріч «iOS — архітектура дизайну, коду, деплоя» в новий офіс Superjob на Малій Дмитрівці. Приходьте обмінюватися досвідом!
Superjob продовжує серію IT-митапов. В цьому році ми зробимо акцент на розробці мобільного та Data Science.image

Читати далі →

100 випуск Digest MBLTdev — свіжак для iOS-розробників



Сьогодні для вас виходить сотий випуск дайджесту. У нас немає слонів і булочок. Ми не даруємо футболки і нечасто роздаємо промо-коди. Все, що у нас є — наша власна щоденна робота, знахідками з якою ми ділимося з вами. Спасибі, що читаєте нас. Випуск під катом.
Читати далі →