TODO в swift в Xcode

 
 

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

// TODO: we need to convert to float math for better precision
let sum = 1 + 2
let avg = sum / 2

И хотелось бы, чтобы Xcode каким-либо образом это подсвечивал, например как это было в старом добром Objective-C

#warning we need to convert to float math for better precision
int sum = 1 + 2;
int avg = sum / 2;

Но в Xcode “из коробки” увы нет такой поддержки для Swift. Быть может она появится в будущем, сейчас же предлагаю применить черную магию и написать скрипт. Для этого идем в Build Phases и создаем “Run Script”, поместить его можно в конце. Содержание скрипта такое:

TAGS="TODO:|FIXME:"
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($TAGS).*\$" | perl -p -e "s/($TAGS)/ warning: \$1/"

Xcode после сборки начнет подсвечивать ваши TODO’шки так

highlight todos

Если вы хотите подсвечивать еще например // ERROR: как ошибки, можно скрипт сделать таким

TAGS="TODO:|FIXME:"
ERRORTAG="ERROR:"
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($TAGS).*\$|($ERRORTAG).*\$" | perl -p -e "s/($TAGS)/ warning: \$1/" | perl -p -e "s/($ERRORTAG)/ error: \$1/"

Xcode сделает так

highlight errors

Придумал не сам, нашел тут и перевел.

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

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