Yandex Mobile Contest

   
   

import Foundation

let ymc = Event("Yandex Mobile Contest", at:"2016-10-17")

let attendee = AnyPerson()
if attendee.haveInterest(in: "Мобильная разработка") {
    attendee.takePart(in: ymc) && attendee.winPrize(of: ymc)
}

Проводим в Яндексе соревнование мобильных разработчиков, приглашаем всех желающих. Регистрируйтесь тут

Почему не надо использовать React Native

 

Хорошая статья почему не надо использовать React Native, правда на английском.

https://arielelkin.github.io/articles/why-im-not-a-react-native-developer

GIT cookbook

 

Разное полезное для гита

Забрать к себе все ветки с remote

git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all

Отправить все локальные бранчи в новый remote

git push REMOTE --all
# or git push REMOTE '*:*'

git push REMOTE --tags

Поудалять все теги по маске

git tag -l | grep _clog | while read remote; do git tag -d $remote; git push origin :refs/tags/$remote; done

Как отлаживать приложение для iOS 10 в xCode 7.3.1

     

Случилась такая задача - отладить приложение собираемое с iOS 9 SDK на телефоне с iOS 10. Для этого собирать его надо естественно в xCode 7, но xCode 7 не видит устройства с iOS 10. Проблема относительно просто решается вот такой вот магией:

sudo ln -s /Applications/Xcode8beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A5322e\) /Applications/Xcode7.3.1.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/

После этого можно отлаживаться в обычном режиме.

Аналогичным образом можно подцепить к Xcode 8 девайс с iOS 7.1 например

sudo ln -s /Applications/Xcode7.3.1.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/7.1 /Applications/Xcode8GM.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

Но это уже на ваш страх и риск - никто работоспособность такого хака не гарантирует

Poor Man's package management

     

Вы наверняка пользовались пакетными менеджерами а-ля CocoaPods и Carthage. Однако иногда возникают ситуации когда вы хотите подцепить себе в проект сторонний проект, но при этом по какой-то причине не хотите пользоваться этими менеджерами пакетов. В таких случаях может пригодиться техника, которую я ласково называю “Poor Man’s package management” (пакетный менеджер для бедных, уж простят меня оные).

Суть техники в следующем - зависимости мы цепляем непосредственно как часть нашего проекта с помощью git submodules. Да, техника работает для пользователей git (хотя лично я знаю как ее применить и для SVN, думается, что уж для популярных DCVS систем такую технику уж точно придумать можно).

Для того, чтобы репозиторий зависимости стал “подпапкой” вашего проекта достаточно сделать так

git submodule add http://github.com/cooluser/coolproject ./deps/coolproject

и далее ручками через xcode добавляем нужные файлы к себе в проект. Не забываем закоммитить .gitmodules себе в проект, это нужно чтобы ваши коллеги могли себе собрать тоже и также.

Чтобы другой человек (ваш коллега, например) получил полный экземпляр вашей работы кроме обычных действий при работе с подмодулями ему надо сделать

git submodule init
git submodule update