Apple создала Storyboards, чтобы разработчики могли визуализировать экраны iOS-приложений и связи между ними. Не всем понравился этот инструмент, и на то есть разумные причины. Я встречал много статей с критикой Storyboards, однако так и не нашел подробного и непредвзятого анализа всех плюсов и минусов с учетом best practices. В итоге я решил написать такую статью сам.
Читать полностью »
Рубрика «storyboard»
iOS Storyboards: анализ плюсов и минусов, best practices
2019-06-14 в 13:15, admin, рубрики: advantages, Auto Layout, best practices, constraints, disadvantages, interface builder, iOS, Size Classes, storyboard, uistackview, xib, Блог компании MobileUp, разработка мобильных приложений, разработка под iOSУдобная локализация iOS приложений в Interface Builder
2017-04-07 в 11:17, admin, рубрики: interface builder, iOS, ios development, ios programming, localization, localize, storyboard, swift, xib, разработка мобильных приложений, разработка под iOSНе так давно я опубликовал подробную инструкцию по использованию LocoLaser — утилиты для локализации Android и iOS приложений в Google Sheets. Мне бы хотелось продолжить тему локализации и обратить больше внимания на iOS приложения. В отличии от Android, в iOS разработке есть ряд мелких но неприятных моментов, которые, в сумме, могут привести к совсем не мелким проблемам.
Сегодня я хочу уделить особое внимание Interface Builder-у. Все мы знаем, он не идеален. Но это единственное, что у нас есть и с этим приходится мириться. В этой статье я расскажу о главной проблеме, с которой вы можете столкнуться при локализации приложений в Interface Builder, а также расскажу как с ней можно справиться.
Читать полностью »
Xcode: наверное, лучший способ работы со сторибордами
2016-10-17 в 4:08, admin, рубрики: storyboard, swift, xcode, разработка под iOS
Этот пост является вольным переводом статьи Xcode: A Better Way to Deal with Storyboards by Stan Ostrovskiy
Некоторые примеры кода в оригинальной статье устарели (ввиду выхода Swift 3) и в переводе были изменены.
Советы и рекомендации по работе с Interface Builder.
Apple серьезно улучшили Interface Builder в новом Xcode 8. Использование size classes стало более интуитивным, возможность масштабирования сториборда — очень удобной, а полное превью прям в Interface Builder — просто великолепным. Для тех у кого были сомнения насчет использования Interface Builder, это может стать хорошими плюсами.
С другой стороны, у многих разработчиков все еще есть некоторые проблемы с Interface Builder когда они создают большие многоэкранные приложения со сложной навигацией.
В этой статье я поделюсь некоторыми из лучших практик для работы со сторибордами в вашем проекте. Вы уже пользуетесь Interface Builder, или только делаете первые шаги в этом направлении? — в любом случае, эти советы будут полезны для вас.
1. Если вы работаете в команде, используйте отдельный сториборд для каждого экрана. Даже если вы работаете один — это наверняка станет хорошей привычкой.
В вашем проекте есть один файл main.storyboard, который выглядит вот так?

С точки зрения дизайнера, все хорошо: полностью видно UI и навигацию. И это именно то, для чего Interface Builder и был создан.
Но для разработчика это несет множество проблем:Читать полностью »
Пишем VoIP iOS чат на CORE AUDIO для конкурса VK Mobile Challenge
2016-03-26 в 12:56, admin, рубрики: core audio, iOS, objective-c, storyboard, xcode, Вконтакте API, конкурс, мобильные приложения, Работа со звуком, разработка мобильных приложений, разработка под iOS, эхоподавлениеНедавно, команда ВК объявила конкурс на разработку мобильного приложения, которое бы расширяло возможности соцсети "ВКонтакте", и я решил принять участие, так как по условиям конкурса можно придумать свою идею приложения. У меня было три идеи, и нужно было выбрать, за какую из них взяться.
Почему Storyboard — не лучшая идея
2016-01-16 в 18:54, admin, рубрики: iOS, storyboard, swift, разработка под iOSИтак, вы начали новый проект в Xcode. Первое, что я предлагаю сделать, это удалить Main.storyboard. Почему? Потому что от него исходит много проблем.
Чем мне не угодил Storyboard
Не спорю, Storyboard — очень удобная вещь. Все контроллеры расположены в одном месте, причем, все они соединены переходами (segues). Можно сказать, что приложение будто находится у вас на ладонях. И это замечательно, ведь не всегда удается запомнить, к какому контроллеру мы перейдем, если нажмем на очередную кнопку или ячейку.
Но, это все? Есть ли еще какие-нибудь преимущества? На самом деле нет. Зато приходится мириться с многими неприятными вещами.
Читать полностью »
Apple, допили пожалуйста Interface Builder!
2013-09-27 в 14:02, admin, рубрики: apple, iOS, ipad, iphone, storyboard, разработка под iOS, метки: apple, iOS, iPad, iPhone, storyboardЭтот пост — крик гнева в сторону Apple, и все же во мне осталась надежда. Я являюсь iOS-разработчиком уже 4 года, и то, что поначалу казалось сиюминутным несовершенством, несущественными деталями, с годами превращается в китайскую пытку водой, а ведь мы с вами пользуемся IB каждый день, ну или хотя бы раз в неделю.
Возможно, Apple и не заслуживает такой критики — правда, все остальное, ну или почти все остальное, у них на высоте. Исключая iTunes и Apple developer portal (который за последние годы, все же, стал значительно лучше) технологии позволяют сосредоточиться на том, что ты делаешь, а не на том, как это будет смотреться в IE.
Читать полностью »
Избавляемся от строковых констант в Objective-C
2013-06-30 в 11:32, admin, рубрики: coredata, mogenerator, storyboard, Программирование, метки: coredata, mogenerator, storyboard Магические константы в коде — зло. Строковые константы в коде — еще большее зло.
И вроде бы от них никуда не денешься, они повсюду:
1) При загрузке объектов из xib-ов:
MyView* view = [[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil] lastObject];
MyViewController* controller = [MyViewController initWithNibName:@"MyViewController" bundle:nil];
2) При работе с CoreData:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"MyCoreDataClass" inManagedObjectContext:moc]];
[request setSortDescriptors:@[ [[NSSortDescriptor alloc] initWithKey:@"someProperty" ascending:NO] ]];
3) Если вы используете KVO, то строки появляются и тут:
[self addObserver:someObservedObject
forKeyPath:@"someProperty"
options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld)
context:nil];
4) Ну и KVC:
NSInteger maxValue = [[arrayOfMyClassObjects valueForKeyPath:@"@max.someProperty"] intValue];
5) Но даже если CoreData вы предпочитаете работу с SQLite напраямую, xib-ами вы брезгуете, то вот такой код вам должен быть знаком:
[self.tableView dequeueReusableCellWithIdentifier:@"MyTableViewCell"];
6) Ну и когда Apple представила миру Storyboard — это было замечательно, если-бы не одно но:
[self performSegueWithIdentifier:@"MySegue" sender:nil]
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:( id )sender {
if ( [segue.identifier isEqual:@"MySegue"] );
}
Вы видите проблему? Она состоит в том, что компилятор никак не проверяет содержимое строк, поскольку не знает (да и не может в принципе знать), что в них содержится. И если вы опечатаетесь или измените значение соответствующих полей в xcdatamodel / xib / storyboard / переименуете property, то ошибка вылезет не на стадии компиляции, а в рантайме, и отловить и исправить ее будет дольше и дороже.
Так что-же можно сделать?Читать полностью »
Коварные анимации на Windows Phone
2013-01-11 в 13:58, admin, рубрики: .net, storyboard, windows phone, XAML, анимации, разработка под windows phone, метки: storyboard, windows phone, XAML, анимации Когда только начинал знакомиться с платформой Windows Phone 7 – решил сразу сделать какое-нибудь приложение или игру. В то время я открыл для себя довольно интересную карточную игру по мотивам MTG – Spectromancer и твердо решил сделать такую же под WP7. Уже не помню по каким причинам (да помню-помню – из-за лени разбираться с XNA) решил писать игру на платформе Silverlight. Различные графические эффекты решил делать при помощи анимации (Visual States) через Expression Blend:
Читать полностью »
Хитрости разработчика под iOS. Splash Screen
2012-12-05 в 10:45, admin, рубрики: apple, ARC, Cocoa, iOS, ios 5, iphone, objective-c, storyboard, метки: apple, ARC, Cocoa, iOS, ios 5, iPhone, objective-c, storyboardВступление
Приветствую, читатели!
В ходе разработки приложений под iOS у меня накопились некоторые хитрости, которыми я хотел бы поделиться с Вами.
Сразу предупрежу, что я стараюсь шагать в ногу со временем, поэтому примеры будут под iOS >=5.0 и использовать Storyboard и ARC, но ничего не мешает их портировать на 4.*.
Если вы давно разрабатываете под iOS — для вас бОльшая часть сказанного мною будет очевидной, но при этом я хотел бы, чтобы вы присоединились к обсуждению и рассказали, как вы реализуете подобное.
Заинтересовавшимся — прошу под кат (Пост содержит скриншоты областей Interface Builder-а, поэтому предупреждаю о траффике).
Corona SDK — для начинающих. Работа с несколькими сценами при помощи Storyboard API
2012-07-30 в 8:04, admin, рубрики: corona sdk, mobile development, storyboard, Разработка под android, разработка под iOS, метки: corona sdk, storyboardCorona SDK — это кросс-платформенный движок для создания игр под iOS и Android. Лично мне он нравится своей простотой освоения: пятерка в школе по паскалю — достаточный багаж знаний для покорения «короны». На хабре уже есть несколько статей на эту тему, но подробных уроков для начинающих как на этом, так и на других русскоязычных сайтах очень мало.
В этой статье я расскажу об одном из ключевых вопросов работы с Corona SDK — организация нескольких сцен в одном приложении.
Читать полностью »