Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Спрятанные вероятности Xcode 5

Anna | 2.07.2014 | нет комментариев

Команде Несвязного Девелопа удалось получить корпоративный аккаунт вследствие чудотворной программе Програпрогра по поддержке начинающих стартапов без действующей монетизации. Мы — это ребята, которые частенько устраивают трансляции разработки разных приложений за 24 и 48 часов. Сегодня мы взяли курс на создание бесплатных аналогов надобных, но платных либо обвешанных рекламой программ.

Дабы наш приветственный пост не получился «Ни о чем», сегодня я расскажу о некоторых вкусностях работы с Xcode 5, подсмотренных на WWDC 2013. В программе вечера:

  1. Автодополнение кода: печенье, которое еще не все испробовали
  2. Edit in scope: сытный шоколадный тортик
  3. Объекты IB: назовите данный сорт клубничного желе
  4. Двойственный ранг-бар: подавайте шоколадный шейк охлажденным
  5. Color Blended Layers: вы ненормально наносите ромовый крем
  6. Concurrent Object Enumeration: покройте все сахарной пудрой
  7. Локализация: хватит всякий раз греть духовку


Автодополнение кода

И так, вы дружите с Xcode теснее огромнее пяти лет и думаете, что знаете о нем все? А что, если я скажу, что необязательно прописывать возвращаемый тип для инициализации автодополнения кода? Позабудьте про:

image

Сейчас дозволено писать вот так:

Edit in scope

Положим, у нас есть примитивный способ, не претендующий ни на какую умственную важность:

Оплошность видна даже начинающему программисту: мы сотворили новую переменную number в зоне видимости теснее присутствующей переменной с таким же именем. Дозволено, безусловно, ручками поменять все наименования. А что, если лень? А что, если нет времени? Но чай дозволено применять Cmd F! Нет, нет и нет. Сейчас дозволено навести курсор на переменную и увидеть небольшой треугольничек рядом:

Нажав на эту иконку, мы вызовем контекстное меню с сокровенным «Edit All in Scope»:

Вот, как это выглядит в режиме реального времени:

А для любителей жгучих клавиш есть отдельное сочетание (Cmd Control E):

Объекты IB

Я по служебному долгу частенько разбираюсь в чужом коде, а в частности, с чужими Storyboard’ами. В некоторых интерфейсах, собранных предыдущими разработчиками, черт ногу сломит. Я хочу сыграть с вами в игру: где какой UIView?

Невзначай? Но эту обстановку дозволено запросто исправить! чай все элементы интерфейса дозволено называть как желательно. Пожалуйста, придерживайтесь отменного тона и думайте о грядущих разработчиках. Может, когда-нибудь, добродушно вернется к вам:

Двойственный ранг бар

Говорите, ваше приложение безупречно работает? Оно на 99,9% покрыто тестами, и вы даже исправили пару скептических багов в Foundation? А что случится, если юзеру позвонят? Благо, у нас есть примитивный метод проверить. Симулятор поддерживает показ «расширенного» ранг бара при звонке:

Дабы верно обрабатывать события входящего громка и растяжения ранг бара, дозволено либо начать слушать NSNotificationCenter:

UIApplicationWillChangeStatusBarFrameNotification
UIApplicationDidChangeStatusBarFrameNotification

Либо реализовать следующие способы в вашем AppDelegate:

- (void)application:(UIApplication *)applicationwillChangeStatusBarFrame:(CGRect)newStatusBarFrame;
- (void)application:(UIApplication *)applicationdidChangeStatusBarFrame:(CGRect)oldStatusBarFrame;

Color Blended Layers

Каждому, кто близок к программированию, видимо, что прорисовывать прозрачные объекты труднее, чем обрабатывать непрозрачные. Как минимум, девайсу необходимо думать о фоне и тратить время на его прорисовку. Впрочем многие программисты пренебрегают, а некоторые даже не знают, как переводится качество «opaque» (непрозрачный). Отменнее так не делать.

Скажем, возьмем обыкновенный белый UITableView и включим Color Blended Layers:

Красным симулятор показывает элементы с энергичным альфа каналом, зеленым — непрозрачные элементы. К сожалению, теперь процессор тратит дополнительное время на то, Дабы прорисовать белый фон за прозрачным текстом. Решается это достаточно легко, двумя действиями в Xcode — подмечаем галочку «Opaque» и делаем фон белым:

Позже, все выглядит куда славнее глазу:

Стоит подметить, что, если вы используете картинку с альфа-каналом в своем приложении, то подметить галочкой «Opaque» будет неудовлетворительно. Xcode уважает ваши прозрачные картинки (исключительно, если это картинки котят), и даже если вы скажете ему, что картинка без прозрачности — иными словами, одурачьте его — он все равно поступит по чести и сделает картинку прозрачной. Когда необходимо делать картинку непрозрачной — делайте это в каком-нибудь графическом редакторе. Xcode сумеет обрабатывать картинку, как непрозрачную, только тогда, когда у картинки нет энергичного альфа-канала.

Concurrent Object Enumeration

Все, что я хочу показать вам в этом пункте — это дальнейшая пара строк кода:

NSArray *myObjects = ...;
[myObjects enumerateObjectsWithOptions:NSEnumerationConcurrent
    usingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        // Сделайте что-нибудь с элементом массива
    }];

Специальное внимание стоит обратить на качество, которое мы передаем способу: «NSEnumerationConcurrent». Оно разрешает применять все прелести многопоточного программирования при работе с массивом данных, не заморачиваясь с GCD либо NSOperation.

Локализация

Если вы хоть раз переводили свое приложение на другие языки, то вам знакома эта боль с непрерывным изменением настроек языка в симуляторе. Вы только посмотрите на это бесчинство:

Нет, так не пойдет. А что, если вам легко необходимо исправить мелкий баг в одной из локалей? Переключаться туда и обратно — затратно по времени. Есть решение проще, стремительней, разумнее! Дозволено сделать несколько различных схем для билда, да Дабы у всякой схемы был свой язык. Заходим в настройки основной схемы:

Жмем «Duplicate Scheme»:

B добавляем два флага: “-AppleLanguages (ru)” и “-AppleLocale ru_RU” (наименования локалей стоит погуглить, если не помните):

Сейчас мы можем мигом запускать наше приложение на различных языках, не заходя в настройки симулятора:

Завершение

Большое спасибо, что дочитали до конца!

Я постараюсь чаще выкладывать различные интересности с WWDC на прогр: изредка проще потратить 10 минут на чтение текста, нежели 40 минут слушать Tech Talk с тем же числом информации. Впрочем я весьма настаиваю на том, Дабы всякий iOS разработчик посмотрел правда бы 2-3 видео с этих конференций для самообразования.

Кстати, здесь ходят сплетни, что дальнейшая трансляция будет на Рождество (25 декабря) и мы испробуем сделать «клон-убийцу» платных приложений типа «Heads Up» из App Store. Безусловно, с русской локлизацией.

Вот такие мы — команда Несвязного Девелопа: с тучей картинок, гифок и котят.

P.S. если вы обнаружили ошибку либо опечатку в тексте — непременно напишите в мой програцентр.

 

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB