How to wait until several AFNetworking requests finish

Use dispatch_group_t, dispatch_group_enter dispatch_group_leave, dispatch_group_notify.

Also, below is code to send a huge array to server by dividing ti to parts. It is actual when a single request is too big for server – you get “URL too long error” or HTTP 414.

How to create semi-transparent outside border for UIImageView

Just in case if somebody looks for an UIImage with transparent outside border. If you simply set a layer border, you will get a transparent border, but you will see inside image behind that border, not outside image. I managed to create an ImageView with transparent outside border.

It looks like this:
cool image

The idea is simple. I save UIImage from UIImageView. Then I remove UIImage and set initial layer as border layer. Then I put a new smaller sublayer above it and set a saved UIImage as contents of it.

The same approach can be used for UIButton or UIView.

Способ разогнать Android Studio

Может кому будет полезно – способ разогнать Android Studio. У меня он дико тормозил из-за сложного layout и большого размера проекта. Кроме этого, на аймаке нет SSD.

Нужно увеличить размер памяти для виртуальной Java-машины. Я увеличил у себя до 2 Гб. Все стало летать.

Создаем так конфиг и внутри пишем:

Причина тормозов – прожорливость Java в плане памяти.

Здесь подробнее.

Snippet to determine a size of control in Android

It is a common task to get a control size. You may need it to create image assets to customize that control.

First we get a control object, for example ToggleButton. Then we get a pixel density of the device. After that we can convert px units to dp units.

Язык программирования Go

Посоветовали обратить внимание на этот язык программирования Go.

Выглядит с первого взгляда как некий апгрейд языка C с добавлением garbage collection, type safety, dynamic typing, variable length arrays, key-value maps, large standard library. Нет наследования как в C++, но есть композиция и интерфейсы. Более быстрая компиляция, чем в C++ и лучше поддержка многопоточности.

https://en.wikipedia.org/wiki/Go_(programming_language)

Что нового в iOS 9

Новинки в iOS 9:

1. Новое встроенное приложение News, улучшения Notes, Maps, Wallet, CarPlay.

2. На iPad появится Split View, можно будет пользоваться несколькими приложениями одновременно, например, Safari и Twitter.

3. Siri станет умнее. Например, можно будет попросить Siri напомнить о чем-то, когда ты будешь дома. Она сама создает уведомление с привязкой к локализации.

4. Улучшения производительности. Батарея на 1 час дольше будет держаться. Встроенные приложения начнут использовать Metal, то есть по сути графический процессор. Для обновления системы достаточно будет не 4, а 1 гб свободной памяти.

http://www.apple.com/ios/ios9-preview/

#iOS9, #Apple

How to clean all targets in XCode 6 including Pods

When you clean a project, you actually clean only main target. If you want to clean all targets, for example, Pods after installing new versions of pods, you should use another option.

To clean all targets in XCode 6 including Pods use Shift+Cmd+Alt+K button. It calls “Clean Build Folder…” command, which is not visible from menus.

Probably, I don’t know something, because this way of cleaning seems to be not so obvious.

6 наиболее важных новинок в Android 5.0 Lollipop с точки зрения разработчика

Android

Официальный выход Android 5.0 состоялся 3 ноября 2014 года. Я изучил новинки Android 5.0 Lollipop, поставил на свой Google Nexus 5, посмотрел своими глазами. На официальной странице все можно посмотреть и понять, правда скрыт факт изменения среды выполнения, так как это информация для пользователей. Просмотрел все популярные обзоры, но наилучшим источником на русском языке оказалась статья в Википедии.

Итак, наиболее важные новинки с моей точки зрения (по убыванию):

  1. Переход на виртуальную машину Android Runtime (ART), официально сменяющую Dalvik для повышения производительности и оптимизации, направленной на повышение энергоэффективности системы. Это ведет к увеличению времени работы батареи и отсутствию лагов во всем. Надеюсь, что правда, сложно проверить.
  2. Поддержка 64 битной архитектуры, 64-битных устройств и систем-на-чипе. Система на чипе или система на кристалле – это электронная схема, выполняющая функции целого устройства (например, компьютера) и размещенная на одной интегральной схеме.
  3. Улучшенные сетевые передачи и улучшенное подключение к интернету везде. Надеюсь, что правда, сложно проверить.
  4. Android 5 Lollipop теперь поддерживает не только смартфоны и планшеты, но и системы в автомобилях, часы и телевизоры.
  5. Еще больше настроек уведомлений. Теперь показывается оценка времени заряда батареи. И другие мелкие настройки, которыми будут пользоваться только гики.

    android-5.0-battery

  6. Новый дизайн под названием “Material design”. И он явно лучше, чем то, что было раньше. Хотя новый внешний вид трех главных кнопок мне лично не нравится. Поменялись анимации. Сильно изменилась клавиатура – но не уверен, что теперь она лучше. Вообще, не уверен, что мусолить дизайн и кричать о изменениях в нем как о чем-то крупном целесообразно.
  7. nexus2cee_image36