Основи Auto Layout — Концепція, будова, застосування

Auto Layout займається динамічним обчисленням позиції і розміру всіх view view ієрархії, на основі constraints — правил заданих для того чи іншого view. Найбільший і очевидний плюс для розробника у використанні Auto Layout в тому, що зникає необхідність у підгонки розмірів додатки під певні пристрої — Auto Layout робить це за вас, динамічно змінюючи інтерфейс залежно від зовнішніх або внутрішніх змін.

Прикладом зовнішніх змін може бути: Зміна розміру вікна в macOS, зміна орієнтації екрану, різні розміри екранів.

Приклад внутрішніх змін: Зміна вмісту у вікні, зміни в залежності від мови і т. д.

Створити свій інтерфейс можна 3-ма способами: програмно, на основі маски, яка автоматично підлаштовується під зміни або використовувати Auto Layout.

Відмінність Auto Layout від інших способів в тому, що вам більше не потрібно писати код, який змінює інтерфейс в залежності від розміру вікна та інших елементів, замість цього Auto Layout самостійно обчислює розташування елемента інтерфейсу в додатку і змінює його відносно оточення.

Читати далі →

Objective-C, static libraries, categories, -ObjC, біль...

Не всім пощастило писати програми повністю на Swift, та й ще під ios 8+ онлі. Багато легасі на Objective-C, багато залежностей йде через статік либы, ні cocoapods, ні carthage, все ручками. Ми ж круті девелопери, тому строго дотримуємося DRY і все реюзабельные вкусшянки виносимо або в окремі проекти, або в статік бібліотеки. Зараз розглянемо випадок, коли ми зробили класну статичну бібліотеку з не менш прикольним апі, і хотіли б поділитися з товаришами по цеху всередині компанії — на вікі ресурсі/гіті викласти архівчик з либой, хедерами і, звичайно ж, ридмиком де описаний весь апі і як ним користуватися.

Для прикладу заради розглянемо один клас + категорію




Читати далі →

Анатомія редакторів документів: загальний код для онлайн і оффлайн-версій редакторів ONLYOFFICE

Якби хтось запитав нас, який сьогодні день, ми б відповіли, що сьогодні Великий День. День, коли ми нарешті релизим десктопні редактори ONLYOFFICE. Ті самі, що працюють без браузера/інтернету і відправляють документ прямо на принтер.

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

Головна риса наших десктопних редакторів у їх спорідненість з онлайн-редакторами — їх об'єднує загальний вихідний код. У цій статті ми трохи розповімо, чому ми прийняли рішення робити десктопи саме таким чином і розкриємо секрети їх анатомії, а саме — чим вони відрізняються від онлайн-версії, як влаштовані і що ми плануємо поміняти в майбутньому.



Читати далі →

Хімія геймдеву або як маніпулювати гравцями

Після виходу в світ моєю першою мобільного іграшки, я почав активно займатися самоосвітою в галузі гейм дизайну для вдосконалення мого продукту. Натрапив в буржнете на цікаву статтю, яка змусила мене по-іншому поглянути на ігри і дала більш повне розуміння процесу розробки. Рідко вдається зустріти щось дійсно варте уваги, а цей текст мені так сподобався, що я вирішив зробити російський переклад. Крім іншого, я викинув всю лірику, спробу автора жартувати і трохи води.



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

Кожен раз, коли я рублюсь в ідеальні створіння, на кшталт Тетріса або Маріо, я бачу сліди певної структури, що ховається за ігровим процесом. Я вірю, що механічне і передбачуване серце, побудоване на основі людської психології, б'ється в центрі кожної успішної гри.

А що якщо б ми декодировали ці системи і перетворили їх у практичну методику створення ігор?

Читати далі →

Як я створював мобільний файтинг під iOS

Глава 1. Спасибі, Майкл Дудикофф

В дитинстві я любив мріяти про те, ким же я стану, коли виросту. Який шлях обрати: космос або океанські глибини? Ні, я хотів створювати ігри. Чому ігри? Я ріс у часи, коли розум будь-якого хлопчиська був отруєний комп'ютерним бумом і першими консольними баталіями. Йшли роки, мрія моя спала ведмежим сном, задавленная трудовими буднями. І ось, одного разу…

Березень 2014. 7 ранку в звичайному московському спортзалі. Піднімаю гантелі, пригнічуючи сонне невдоволення розмовами з місцевими хохмачами. Тут у нашу бесіду раптово вклинився ВІН…

image

Хлопчики і дівчатка, народжені на зорі СРСР, добре пам'ятають гугнявий одноголосий переклад з затертих відеокасет. І ось один з володарів того голосу з'являється на екрані ТБ, підвішеного до стелі. Звичайно, я одразу впізнав легендарного Майкла Дудикоффа, героя кіноепопеї «Американський ніндзя».

Читати далі →

Особливості створення NSString

NSLog(123456789) != 123456789Стаття розрахована на новачків в Objective-C і розповідає про один спосіб вистрілити собі в ногу. Ми спробуємо створити два різних об'єкта NSString з однаковим текстом, досліджуємо реакцію на це різних компіляторів, а також дізнаємося, при яких умовах NSLog(@"%@", @«123456789») виведе зовсім не «123456789».

Об'єкти NSString і покажчики

Як ви думаєте, що виведе наступний код?
Читати далі →

Як скрэшить будь-який додаток на айфоні, і як цього не допустити

image

Одного разу ми, Surfingbird, знайшли дивну помилку, через яку додаток стабільно крэшилось. Пізніше виявилося, що майже будь-який додаток можна досить просто скрэшить (навіть програми, написані самою Apple). Про те, що ж це за помилка і як її обійти, ми розповімо у статті.

Читати далі →

Тестуємо iOS8 програми з Xcode 6.1 без Apple Developer Program Membership

В кінці травня 2014 року я писав докладну статтю як тестувати програми на iOS7 і Xcode 5.1.1, але не далі як два місяці тому світі був представлений iPhone 6 і iPhone 6 Plus з новою операційною системою iOS 8 і Apple змінила щось у коді і старий «твік» більше не працює. Знаю, що деяким цікаво спробувати написати додаток для iOS, чисто в пізнавальних цілях, але 99USD платити Apple за «допитливість» не хочеться. Не впадайте у відчай, не все так страшно, більш того, тепер все набагато простіше — більше не потрібно створювати сертифікати і компілювати ldid для налагодження.


Читати далі →

Кожному по тисячі: ще раз про Testflight

Важко відшукати iOS-розробника, ніколи не користувався для тестування своїх додатків сервісом TestFlight, або хоча б не чула про нього. Його популярність в лютому цього року підтвердила сама Apple, купивши компанію Burstly, завдяки якій свого часу з'явився TestFlight.



Як відомо, Apple не з тих, хто кидає гроші на вітер — 9 вересня Apple представила TestFlight в App Store вже під своїм брендом.
Читати далі →

Apple зобов'язала розробників створювати 64-бітні програми

Слідом за публічним релізом iOS 8.1 в понеділок, 20 жовтня, Apple представила ряд інших нововведень, серед яких є і те, що безпосередньо стосується розробників мобільних додатків під iOS.



Зокрема, компанія змінила вимоги до випускаються додатками, про що вчора сповістила розробників через повідомлення від Developer Center.

Читати далі →