Комментарии 42
Хм, синглтоны в Swift уже давно не так делаются:
class MyClass {
static let sharedInstance = MyClass()
}
Там private init() для потокобезопасноти нужно добавить(
private init() не спасет от рейс кондишн, тут приватный конструктор нужен чтобы запретить создание больше одного инстанса, у нас же всё таки синглтон)
Кучу всякой ненужной гуйни перечислили, а iterm и homebrew забыли.
И еще в копилку: скрипты ios-deploy и ios-sim из phonegap весьма полезны, с ними можно писать код в нормальном текстовом редакторе (а не в убогом xcode), собирать проект с помощью xcodebuild и потом деплоить на устройство/в симулятор, не открывая xcode.
brew install node
npm install -g ios-deploy
npm install -g ios-sim
Можно, кстати, своими силами обойтись, но будет не так красиво.
package.json:
"scripts: {
"ios-build": "xcodebuild -project ios/YourAppName.xcodeproj -scheme YourAppName -sdk iphonesimulator -destination platform='iOS Simulator',name='iPhone 6 Plus' -derivedDataPath ios/build",
"ios-launch-sim": "xcrun instruments -w 'iPhone 5s (9.2)'",
"ios-install-app": "xcrun simctl install booted ios/build/Build/Products/Debug-iphonesimulator/YourAppName.app",
"ios-launch-installed": "xcrun simctl launch booted org.yourcompany.YourAppName",
...
}
Спасибо, унес в заметки.
по wifi ипашку на девайс зальет что-то из этого?
Нет. Эти скрипты, будучи выполнены последовательно, запустят проект на эмуляторе iPhone 5s.
Ваш Podfile не будет работать с cocoapods 1.0.0 без указания имени таргета.
Думаю, Вы ошибаетесь. Этот файл вполне благополучно сейчас работает с cocoapods 1.0.0
Хм, может у вас rc еще стоит?
Тут они писали об этом http://blog.cocoapods.org/CocoaPods-1.0/
pod init
pod install
Analyzing dependencies
[!] The dependency `Alamofire` is not used in any concrete target.
The dependency `SwiftyJSON` is not used in any concrete target.
The dependency `RESideMenu` is not used in any concrete target.
The dependency `MBProgressHUD (~> 0.9.1)` is not used in any concrete target.
The dependency `MagicalRecord` is not used in any concrete target.
The dependency `SevenSwitch (~> 2.0)` is not used in any concrete target.
The dependency `SMIconLabel` is not used in any concrete target.
Тут они писали об этом http://blog.cocoapods.org/CocoaPods-1.0/
Очень странно. У меня буквально пару дней назад затребовало указания таргета в podfile и без этого ну никак не хотел их подтягивать. :(
Каждый раз когда в команду приходит новый сотрудник, приходится решать вопрос с тем, какие приложения стоит установить на его компьютер
А самому ему решать нельзя?
НЛО прилетело и опубликовало эту надпись здесь
И ещё модный Sketch. ;)
Скорее AffinityPhoto как аналог PS, у них еще есть и Designer как замена CorelDraw и тп векторному софту.
Мой набор:
Основная IDE: AppCode
Вспомогательные редакторы: Sublime Text, VS Code
Документация: Dash
Гит: GitUp, P4Merge
HTTP-клиент: Postman
Графика: ImageMagick, Ghostscript, Pixelmator, GIMP, Zeplin
Трекинг времени: Qbserve
Общение: Slack, Skype
Разное: Alfred
Основная IDE: AppCode
Вспомогательные редакторы: Sublime Text, VS Code
Документация: Dash
Гит: GitUp, P4Merge
HTTP-клиент: Postman
Графика: ImageMagick, Ghostscript, Pixelmator, GIMP, Zeplin
Трекинг времени: Qbserve
Общение: Slack, Skype
Разное: Alfred
Также предпочитаю Carthage вместо CocoaPods, хотя и поды приходится использовать.
А расскажите про Carthage поподробнее или дайте пару полезных ссылок на тему. Буду очень благодарен вам. :)
Никакого самоуправства с файлами проекта как у подов.
Никакой пересборки зависимостей при сборке проекта.
Выкачивает и собирает фреймворки, которые я сам куда нужно подключаю.
https://realm.io/news/swift-dependency-management-with-carthage/
Никакой пересборки зависимостей при сборке проекта.
Выкачивает и собирает фреймворки, которые я сам куда нужно подключаю.
https://realm.io/news/swift-dependency-management-with-carthage/
О, спасибо большое.
минусы рассказать забыли :-)
1) долгое выкачивание и сборка фреймворков когда нужно добавить/удалить что то
2) нужно руками прописывать путь к каждому фреймворку и добавлять фреймворк в проект
2.1) это нужно сделать для каждого таргета
1) долгое выкачивание и сборка фреймворков когда нужно добавить/удалить что то
2) нужно руками прописывать путь к каждому фреймворку и добавлять фреймворк в проект
2.1) это нужно сделать для каждого таргета
1.
Долгое, это если всё под все платформы собирать, но обычно нужна только одна, например, только iOS.
Также при удалении не нужно ничего пересобирать, а при обновлении/добавлении можно отдельно указать, какой обновить.
2.
Только в один скрипт для сабмита в стор надо дописывать фреймворки.
Долгое, это если всё под все платформы собирать, но обычно нужна только одна, например, только iOS.
Также при удалении не нужно ничего пересобирать, а при обновлении/добавлении можно отдельно указать, какой обновить.
2.
Только в один скрипт для сабмита в стор надо дописывать фреймворки.
Только в один скрипт для сабмита в стор надо дописывать фреймворки.
Не поделитесь опытом? В проекте ибо в таргет прикладывается скрипт с путями и какие нужны фреймворки. Возможно я что то делаю не так и как вы пишете можно только в одном скрипте указать фреймворки (как в pod'ах можно было указать вот эти вот на все таргеты, вот этот вот «туда», а этот «туда»)
Также при удалении не нужно ничего пересобирать
ну да, на удаление не надо пересобирать. Но надо убрать из картежфайла запись, из таргета удалить фреймворк, потом найти его в скрипте и убрать путь до него.
Конечно ситуация добавления/удаления не такая и частая, но как то смущает. Особенно когда больше 1 таргета на проекте
> В проекте ибо в таргет прикладывается скрипт с путями и какие нужны фреймворки.
Да, я про этот скрипт и говорю, но пути там однотипные и относительные.
И этот скрипт нужен для подготовки фреймворков приложения для загрузки в айтюнс.
Между таргетами — копипастом :), но таргетов же обычно минимум.
По-моему, это минимальная плата за то, что ничего не ломается с каждой новой версией подов.
Да, я про этот скрипт и говорю, но пути там однотипные и относительные.
И этот скрипт нужен для подготовки фреймворков приложения для загрузки в айтюнс.
Между таргетами — копипастом :), но таргетов же обычно минимум.
По-моему, это минимальная плата за то, что ничего не ломается с каждой новой версией подов.
В качестве языка Obj-C используете?
Сейчас Swift в основном.
Поддержка свифта в аппкоде далеко не супер, конечно, но жить можно.
Поддержка свифта в аппкоде далеко не супер, конечно, но жить можно.
Она даже не доходит до уровня Xcode.
А с StoryBoard/Xib через Xcode работаете?
в другое я бы добавил ещё:
SimPholders 2.2 — для просмотра данных в CoreData
SimPholders 2.2 — для просмотра данных в CoreData
ИМХО, не стоит он тех денег, что за него просят. Реализовать такое — не великая проблема. К тому же недавно перестала работать App Store-версия, а разработчики перестали отвечать на письма. В итоге накидали собственный аналог за день:
https://github.com/dsmelov/simsim
https://github.com/dsmelov/simsim
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Портфель iOS TEAM разработчика