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


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

Читати далі →

Дайджест цікавих матеріалів для мобільного розробника #189 (30 січня-5 лютого)

На цьому тижні вийшло багато всього про дизайн і анімації – Lottie від Airbnb, Sketch у великих проектах, віртуальна реальність, Bear Notes, який своєю простотою підкорив Apple. А крім дизайну, архітектури, стікери, PWA, MMO RTS і багато всього іншого.


Читати далі →

Управління світлодіодною стрічкою WS2801 з використанням Raspberry Pi і iOS

Всім привіт!
Ця стаття містить вихідні коди програми для операційної системи iOS, мета якого управління світлодіодною стрічкою WS2801, підключеної до Raspberry PI.

Читати далі →

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

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

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

Читати далі →

Google опублікувала початковий код Chrome для iOS

image

Компанія Google опублікувала початковий код свого браузера Google Chrome для iOS, повідомляється в офіційному блозі Chromium.

«Історично склалося, що код Google Chrome для iOS був відокремлений від іншої частини проекту Chromium з-за додаткової складності в реалізації платформи. Після декількох років ретельного рефакторінгу, весь код був возз'єднаний з проектом Chrome і переміщений Open source-репозиторій», — йдеться у блозі.

Читати далі →

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

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

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


Читати далі →

Як не витрачати час на безперервну інтеграцію

Будь-яка софтверна компанія рано чи пізно приходить до необхідності впровадження безперервної інтеграції, будь це розробка мобільного додатку, створення звичайного сайту, або вже тим більше, якщо це складна мікро-сервісна структура.

image
Раніше я писав, що наша команда займається розробкою iOS і Android додатків під ключ, включаючи бекенд і фронтенд. З цього випливає гостра потреба у наявності масштабованого процесу дистрибуції і усталених стандартів щодо ведення проектів.

Але одна справа, коли у тебе єдиний продукт, де можна зробити абияк, а інше — якщо кожен місяць з'являється новий, з особливими вимогами, великою командою, для якого треба швидко отримати CI/CD.

Ви, напевно, подумали, що зараз буде інструкція з налаштування цієї самої інтеграції, де я поділюся best practices, скриптами, рекомендаціями по інфраструктурі та іншими лайфхаками.

Я теж так думав.

Читати далі →

Історія створення простій мобільної гри

Привіт! Ми — невелика команда з двох осіб, яка намагається робити ігри у вільний час. Зовсім недавно ми нарешті зарелизили своє перше скромне творіння і вирішили поділитися досвідом його створення з хабрасообществом.


“У всіх є свої раннеры, а чим ми гірші? Ми теж зможемо запив за місяць вкрай просту гру для телефонів", — подумали ми трохи більше року тому, і все закрутилося.

Ми намалювали кілька скетчів, написали диздок на 2 листа і взяли Unity, з яким у нас вже був невеликий досвід роботи. Вирішивши, що впораємося з простим раннери приблизно за місяць-два, приступили до роботи.

Обережно, під катом досить багато картинок!

Читати далі →

Дайджест цікавих матеріалів для мобільного розробника #188 (23-29 січня)

щотижневої добірці ви знайдете архітектуру Uber, половинки квадрата від Папи, відгуки та іконки в новій iOS, боротьбу з Xiaomi, нову версію Qt і багато іншого цікавого!


Читати далі →

Нативний код Android і iOS в Qt на прикладі status bar

Привіт! Впевнений, багато чули про те, що Qt дуже хороший для кросплатформенной розробки мобільних додатків. Однак, для рішення деяких задач доводиться мати справу з нативним кодом Java, Objective-C), наприклад, виклик камери, галереї, виклик стороннього api.
У цій статті на прикладі завдання прозорості для status bar я покажу, як здійснюється виклик нативного коду Java і Objective-C.
вжух
Читати далі →