Записки Junior-а: універсальний Storyboard

Записки Junior-а: універсальний Storyboard

Всім привіт. Як і обіцяв у першій своїй публікації, я продовжую ділитися практичним досвідом з вивчення можливостей нового Xcode 6. У цій нотатці я поділюся своїми думками щодо такого нововведення, як Size Classes.

Під час роботи над проектом Cookorama (iPad версія) я подумав, що було б непогано якимось чином скоротити час, який витрачається на розробку в Storyboard 2-х варіантів дизайну: окремо для iPhone і iPad. І це при тому, що основна функціональність додатку, його події та поведінка візуальних елементів залишаються спільними. На перший погляд нічого складного, але багато часу йде на повторне зв'язування елементів управління з уже написаними подіями та властивостями (IBAction і IBOutlet). А якщо врахувати той факт, що з кожним роком кількість гаджетів під управлінням ОС iOS стає все більше, і основна відмінність між ними, в першу чергу, полягає в розмірі екрану (його діагоналі), то рішення питання з оптимізацією таких непродуктивних витрат виходить на перший план.

Тому не випадково мою увагу привернула новина про те, що компанія Apple вирішила допомогти розробникам за допомогою технології Size Classes, яка по-іншому розглядає підходи до роботи з Interface Builder. Їм була запропонована можливість вибору з кількох режимів роботи, змінюючи параметри ширини (Width) і висоти (Height).

Записки Junior-а: універсальний Storyboard

Для використання нових можливостей у своїх проектах, необхідно при їх створенні встановити галочку Use Size Classes. При цьому Storyboard прийме трохи непривичний вигляд, де в нижній частині представлення відобразиться напис wAny / hAny. Також необхідним, але необов'язковим умовою зручності роботи з новим класом є умова спільного використання Auto Layout (встановлюється / скасовується там же, де і Size Classes).

Записки Junior-а: універсальний Storyboard

Спочатку потрібно розмістити елементи дизайну на основній UIView, можна без їх прив'язки до координат (т.н. якорі). Це можна зробити пізніше, вибравши сукупність пристроїв, для яких будуть встановлюватися ці самі співвідношення. Наприклад, вказавши параметр wCompact / hRegular, я визначився, що буду формувати дизайн для iPhones усіх можливих діагоналей у «портретній» орієнтації. Аналогічним чином, змінивши цей параметр на wAny / hCompact, я займуся коригуванням дизайну для iPhones усіх можливих діагоналей у «альбомній» орієнтації. Як бачимо, все легко і просто!

Записки Junior-а: універсальний Storyboard

Наступним не менш важливим моментом нової «фічі» є можливість змінювати висоту шрифту текстових написів і розміри елементів екрану. І все це відбувається без необхідності написання хоча б одного рядка коду…

Записки Junior-а: універсальний Storyboard

Мій висновок — технологія заслуговує на увагу, і я з нетерпінням чекаю можливості перевірити свої знання в нових проєктах нашої компанії!