Это копия, сохраненная 18 декабря 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Покороче:
Swift - открытый мультипарадигменный объектно-ориентированный язык программирования общего назначения. Создан компанией Apple в первую очередь для разработчиков iOS и OS X.
В этом треде вы можете ответить свои вопросы анонам, а они в свою очередь с радостью вам ответят.
Показать код быстро - https://pastebin.com
Показать код с регистрацией и смс - https://gist.github.com
Objective-C или Swift? - дерьмо или язык богов (Swift)?
Как обучиться лучшему языку во вселенной?
1. Видеоуроки от нудного, гнусавого, гэкающего Скутаренко для полных дебилов - https://www.youtube.com/user/AlexSkutarenko/
Раскладывает все по полкам, потом с полок убирает и раскладывает по новой.
2. http://swiftbook.ru/ - годнота.
3. https://goo.gl/R9af4y - библия.
А что насчет книг?
Не нужны. Достаточно открыть библию двумя строками выше и окунуться в прекрасный мир Swift.
А английский нужен?
В отличии от тебя - да.
А еще Swift вроде как двигается в Android сторону, да и вообще код недавно был открыт Apple, что дает возможность в скором времени наблюдать Swift на сервере, мобилках, небе и даже аллахе.
Где кодировать код?
1. XCode.
2. AppCode.
Где задать свой тупой вопрос?
1. Здесь.
2. В тематических слак конфах.
3. https://telegram.me/pogromists
Исправления и дополнения для шапки писать сюда с пометкой ШАПКА. При перекоте внесем или не внесем.
Пол года пишу под айос на свифте. В плане юзабильности, конечно, это огромный шаг от обж-с. Но не могу скзазать что сам язык какой-то выдающийся. В нём нет никакой парадигмы, и на самом деле это даже хорошо, значит создавался для практических целей, а не во имя какой- о очередной концепции, с которой постоянно надо бороться. Например, Rust, где нельзя просто взять и начать писать код, ну и прочие ваши хаскели, да даже Java.
>Например, Rust,
А может дело в том, что
>Пол года пишу под айос
хотя да, нельзя, он не для тупой макаки которая даже на, блядь, жяве не может взять и что-то написать
С Растом я разобрался, и могу писать на нем код. Но на нем нельзя буквально в первый день уже сделать что-то, и уж тем более сделать его массовым языком. Java я примвел в пример из-за ее ограничений в виде тоталього классодрочерства. Это не плохо, не хорошо, но это определенные ограничения парадигмы. У Swift такого нет. Swift не говорит что "МЫ ООП!!111" или "без сборщика мусора достигли безопасности памяти". Для эппла, и для гугла важно чтоб как можно больше людей делали приложения, чтоб маркет разбухал больше больше. Поэтому им нужно понижать порог вхождения. И я не вижу ничего плохого в этом. Ну кроме засилья стора всяким говном которое жрет по 100мб памяти
1. Переезд на убунту с семерки чот не впирает.
2. Если и переехать - на чем тестировать свои поделия? На айфон я ещё не насособирал.
Если у тебя нету даже мака - просто забудь.
Xcode нет нигде кроме мака, а это значит что надо покупать мак.
Дело даже не в нём.
Я веб макака, хотел бы заняться чем-то людским.
Джвести лет ждал такого треда. Хотел уже сам создавать, только не было времени поддерживать
> Например, Rust, где нельзя просто взять и начать писать код, ну и прочие ваши хаскели, да даже Java
Я почти не разбирался с растом и хачкелем, но про яву - это ты что-то загнул. Другое дело, если хочешь сразу в интерпрайз. Там да, пиздец - фасады едут на фабриках и интерфейсами погоняет
Или пердолиться с хакинтошем. Но, имхо, оно того не стоит.
Вангую, что кто-нибудь со временем запилит аналог икскода под линупсы
Эппловские библиотеки в основном. Ну и есть всякие reactive cocoa и прочие изъёбы, которые, в принципе, не обязательно знать
а базы данных? скуел, носкуел?
смотрю по треду, что можно писать на бубунте, не обязательно иОС?
Ты чё, совсем оскуел?
Типичная js-макака, у которой вместо чистого-современного-расширяемого языка - гора фрейморков.
Эпл запилили CoreData - эта абстрактная приблуда может писать и читать из sqlite, xml, возможно mysql и т.д. На практике используется sqlite. Некоторые работают с sqlite через сторонние библиотеки.
JS тред стал настолько жирным, что скоро js-макаки затопят весь /pr/
>appcode
>swift
Еще оказывается и нихуя не кодил под свифтом, еще си просто так оскорбил
Какого хуя он должен умереть, если эпл официально заявляет что переписывает всё что у них было на обж-с на свифт?
Но вот дальше мобилок и яблоприложений уйдёт наврятли (да и на яблочных пеках скоро будет хорошая конкуренция в виде WPF и прочего).
> android
> swift
С того вброса уже прошло пол-года, а ios-маньки в все никак не упакуются.
Ну вот нахрена нам ваш swift, если у нас есть Kotlin/Scala/Clojure/Groovy/Java 8
и вообще любой язык компилирующийся в java-байткод.
> на яблочных пеках скоро будет хорошая конкуренция в виде WPF
Пруфец давай, первый раз о таком слышу.
Если ты совсем не читаешь новости отвечу - .Net Core
Сейчас ясен хуй только бэкграунд портируют в попыхах, ещё рановато об этом говорить.
Остается котлин
Читать умеешь, животное?
>Сейчас ясен хуй только бэкграунд портируют в попыхах, ещё рановато об этом говорить.
Он там будет - дотнет может соревноваться с жявой только на десктопах.
> dotNET Core
> WPF
Ну ты фантазер
>>787853
Манька, зачем ты цифры с потолка берешь.
Там не больше чем в вашем Swift рантайме
Плюс на android вам придется компилировать под arm6/arm7/arm64/x86/x86-64/mips и тд
>Он там будет
Жопец ставишь?
UI и macOS нахуй не уперлись Microsoft, они это делают только для AspNetMvc + Linux.
macOs это так плюшки для хипстарков с макбуками.
>Ну ты фантазер
Скорее ты идиот. Дотнет без его инфраструктуры - бесполезное говно без задач, а целит он, внезапно, в энтерпрайз, где именно она играет первостепенную роль.
>Там не больше чем в вашем Swift рантайме
А нахуй он нужен на андроиде как нативный язык? Сделать компилятор в байткод не самая трудная задача, тем более когда фронтэнд уже есть готовый.
> А нахуй он нужен на андроиде как нативный язык? Сделать компилятор в байткод
Уже сделали - Kotlin называется (синтаксически они схоже на ~90%).
Он кстати в и JS компилируется, а в планах еще и native/iOS
Значит они идиоты. Никто не станет переходить на дотнет на серверах только из-за дотнета и шарпа, особенно учитывая что он медленнее и инфраструктура у него там отстаёт на десяток лет.
Ебанутые литералы словарей и вроди бы массивов. Странный conditional binding. Компилируется дольше, чем свифт (это официально гугол задвинул).
А так да, приятный язычок
Так то баг и наверно его уже пофиксили. Опять же, я передаю слова гугола
>хороших программистов.
>мобильная макака щитает что она чем-то лучше своих собратьев с другой платформы
Бля, ну когда же телеграм в спам лист добавят, вы же весь /pr/ заебали
Только то, что настоящую гейлокацию, UIImagePickerController и MFMailComposeViewController протестить ты не сможешь, в остальном будет норм, я почти не пользуюсь девайсом, только симулем в разработке последние года три
>симулем в разработке последние года три
дай информацию подробней, плз. как именно называется?
Чувак, любой постоялец, любитель, с linux.org.ru скажет что растушка учиться за выходные.
Этот язык создан как некая таблетка или облегчение для плюсовиков. Это типа должно быть легче. Но если тебе показалось это сложным, то я даже не знаю. Тебе может быть BASIC подойдет!
BASIC - это такое, что сразу сел и начал писать велосипеды.
Дурак блять, он не писал ничего про сложность языка, а написал что "нельзя взять и написать с наскоку" – и это так.
Вся его "простота" в отличие от тех де плюсов – отсутствие сорокалетней накипи легаси, не более.
Чуваки да пошли вы в жопу!
>любитель, с linux.org.ru скажет что растушка учиться за выходные.
Он может сказать только что НИНУЖНА и по сравнению с сишкой ДИШРАДАЦИЯ, НИШВАБОДА.
Сейчас 11-ая версия актуальная. На днях должна выйти 12-ая - наконец-то стабильная, а значит можно будет писать продакшн.
Я, конечно пурист, но как язычок с решетом вместо системы типов может вообще быть приятным?
Но я таки задам несколько вопросов:
1. Когда выйдет уже стабильная версия Swift 3? Можно ли считать что на нем можно что-то писать в продакш или нужно будет ждать 4,5, 6 и тд версии?
2. Когда уже сделают компилятор не только для макос и бубунты?
3. Что там с менеджром пакетов? Ну типа как Cargo в Rust.
4. Что с IDE? XCode - параша, AppCoda - тоже отдает говницом. Есть плагины для атома, саблайма, но как всегда везде версии в стиле 0.0.1 с глюками.
5. Нихуя не понятно за Arc. Все-таки сборщик это мусора или не сборщик? Как он влияет на производительность? Какой оверхед? Есть ли stop-the-world? Можно ли использовать Swift в риалтайм проектах?
6. Что с производительностью? Ясно, что бенчмарки не дают нормалньой картины, но мы все примерно понимаем разницу между С и Питоном. Примерно понимаем положение Rust и Java. Где тут находится Swift? Можно ли на нем писать что-то ресуроемкое? Сможет ли он конкурировать по performance хотя бы с джавой?
Язык вроде хороший. Нравится тем что не такой вырвиглазный и сложный как Rust - да да, я хочу писать код, а не бороться с борроучекером и пытаться понять из ОДНОГО СУКА ИСТОЧИКА (это растбук) как работать с параметрами времени жизни. Вообще Rust всё равно нравится.
Нравится что в Swift есть функциональщина, паттернматчинг. Прчием для людей. Примерно как в Rust.
> Язычок то видимо не самый лучший судя по аншалгу в треде.
Хоть генерики есть в отличие от Г...
Это ты Go имеешь ввиду?
1) Как только допишут все хотелки – никогда;
2) Он уже есть под большую часть систем – собирать правда придётся самому;
3) Всё нормально;
4) Поддержка е том же Clion-е есть;
5) Ну ты хотя бы вики открой. Это почти что концепция лайфтаймов раста, только упрощённая до жути;
6) У него есть жуткий недостаток – всё и вся виртуально, а это один из главных тормозов явы, тот же раст он никак не догонит.
Всё зависит от того, на сколько ресурсоёмкое.
А ебаться в любом случае придётся – либо с борроучекером, либо с отладчиком.
>явы
В данном случае наверное Swift хотел сказать?
Какие щас вообще есть языки/компиляторы для ресурсоемких задач? Я имею ввиду когда решение задачи может занимать несколько часов или дней, и оператива будет вся забита под завязку независимо от данного объема. C, C++, Rust, D? Всё? Хочется на свифте прокатиться, но есть чувство что это очередной питон только многиеллибы еще не написаны.
>В данном случае наверное Swift хотел сказать?
Я написал то что хотел, это не ошибка.
Лучше язык с GC выбери, причём компрессующим и дефрагментирующим – любой на JVM.
А для раста тебе нужно будет в 10 раз больше времени на разработку, при чём если ты раньше не работал с такими задачами ты гарантированно обосрёшься – если у тебя на 100% забита оперативка, то ботлнек будет именно в ней, и без готовых средств тебе придётся самому руками дефрагментировать и компактировать всю кучу, там уже похуй на процессор.
Это одна их причин почему в бигдате полюбили скалу.
>всё и вся виртуально, а это один из главных тормозов явы
Про девиртуализацию в HotSpot слышал?
Которая срабатывает после пары десятков вызовов функции? нормас костыль так Ну уж спасибо ЖИТу за это. Только у свифта как и обжс это родовая травма, а не детская болезнь, в томи проблема.
> тормоза
> пары десятков вызовов функции
Ты любитель оптимизировать на спичках или вообще в теме не рубишь?..
Оптимизации включаются после тысяч вызовов одного метода.
> атома, саблайма
Имплаинг, что это не параша. Допилят аппкод и будет годнота. Просто сейчас хуй угонишься за изменениями в свифте.
> Нихуя не понятно за Arc. Все-таки сборщик это мусора или не сборщик? Как он влияет на производительность? Какой оверхед?
Обычный счётчик ссылок. Когда объект не нужен, он сразу уничтожается, а не собирается в отдельном треде, как в яве. Соответственно и stop the world нет
Не путай нюфага – обычный счётчик ссылок работает в рантайме.
А эта хуитка заканчивается в компайлтайме.
В Swift Arc срабатывает во время компиляции? Какой тогда там оверхед? Значит ли это что Swift это почти как Rust, только автоматический режим.
В свифте оверхед может быть как раз только из-за его высокоуровнности.
> Arc. Все-таки сборщик это мусора или не сборщик? Как он влияет на производительность? Какой оверхед?
Конкретно у самого ARC никакого оверхеда нет, так как он отрабатывает при компиляции. Но есть оверхед связанный с самим подсчетом ссылок - к каждому объекту добавляется одно дополнительное поле для хранения счетчика. И появляются вызовы методов при добавлении/удалении владельцев для обновления счетчика и удаления объекта при необходимости.
Ну в принципе с точки зрения скорости это не должен быть большой оверхед. Всё-таки сделать +1 и -1 не такая сложная операция.
Просто оставлю это тут. Пусть те у кого есть вопросы о производительности, сборщике мусора и пр. продумают немного.
Почему английский нужен, а я - нет?
О чём думать? Что в свифте вместо указателей доступны только толстые структуры, вместо использования которых легче просто скопировать половину значений?
Ахуеть гениальность. Хотя чего можно было ожидать от компании, которая сумела сделать свой форк си работающий со скоростью явы.
>Допилят аппкод
кек. Его допиливают уже хер знает сколько. Занимается причем команда самых лютых говноделов в мире (джетбрейнс)
Они не говноделы, просто делают продукт для серверных станций, где 25 гб и 10 ядер не проблема кек
а где писать тогда на свифте? икскод ведь тоже не назовешь чудом инженерной мысли.
Снова vim, emacs? или atom, sublime?
Сейчас джетбрейнс пилит поддержку свифта для clion (да странно немного, но видимо там будут все clang языки собираться).
Этим летом был проект для студентов - собрать либы для автодополнения под линукс. Ну там на маке обычно отдельный процесс висит, который парсит проект и выдаёт варианты автодоплнения.
Это говорит о то что задача не приорететная, но в скором времени будет более менее ок. На самом деле вроде и сейчас он приемлемо работает, просто из стандартной библиотеки языка не достаёт слова.
Алсо на атоме вроде люди потеют, но думаю там всё выглядит очень уныло.
И кстати на линуксе вполне приемлемый репл у свифта. Вполне удобнее чем плейграунд.
Из проблем на линуксе остаются: отсутствие применения свифта (если под мак иил айфон не компилишь то нахуй?), а причина этому отсутствие либ. Всяких веб фрейворков, графики рисовать, формочки выводить, на видяхах считать. Ну и даже когда они появятся - банально нет пакетного менеджера. Мб ситуация уже поменялась и меня кто-нибудь поправит.
я из мухосрани тут пидоры только в лагерях под шконкой, придеться понаехать в ДС чтобы заработать на приличный компутер?
Они есть везде и всегда, далеко не обязательно под шконкой – если IQ выше сорока скрывать этот факт.
>5. Нихуя не понятно за Arc. Все-таки сборщик это мусора или не сборщик? Как он влияет на производительность? Какой оверхед? Есть ли stop-the-world? Можно ли использовать Swift в риалтайм проектах?
риалтайм блять. Ой ебать как же у меня часто военные делают заказы на риалтайм. Сука какие фантазёры.
>>796574
>5) Ну ты хотя бы вики открой. Это почти что концепция лайфтаймов раста, только упрощённая до жути;
ну нормально пояснил. Видно открывал вики.
>>797780
>Не путай нюфага – обычный счётчик ссылок работает в рантайме.
>А эта хуитка заканчивается в компайлтайме.
Интересная хуйня выходит. Пока все языки пердоляться с гц, в эпле нашли святой грааль - хуёвина которая расставляет делиты в компайлтайме. Наверное в джаве так не сделали чисто из-за легаси, да и просто привычка уже.
>>798182
>у самого ARC никакого оверхеда нет, так как он отрабатывает при компиляции
>Но есть оверхед связанный с самим подсчетом ссылок
Automatic reference counter работает при компиляции и без оверхеда. Хорошо. Ладно. Вот если бы ещё и без подсчёта ссылок работал было бы всем счастье.
Бля, ребят, ну если это такой толстый вброс то сделайте его ещё толще как-нибудь. Кидайте ссылки на даунов со стековерфлоу от которых вы всю хуйню услышали.
>>786578
>>786529
Собираешь хакинтош по buyer's guide от tonymac и никаких проблем. Брат жив, зависимость от топового мощного железа есть. Как вы там дрочитесь на эплоговне
не представляю.
Мимо 300к/сек
Вакансий много, просто ты наверно мимо них пролетаешь, поэтому не видишь. Сейчас весь новый софт только на свифте, на обж-си легаси и поддержка.
Котлин никому не нужное поделие, Свифт будет массовым и дефолтным. Свифт это паровоз, который будет долго тащить за собой кучу макак (увы, мне лично он не нравится)
Ты слишком тупорылые вопросы задаешь, чтобы казаться умным.
>>802652
>>802704
Собирай хакинтош, более-менее сносно можно работать даже на кор2дуо/4гб (ты сам написал что бюджетный ищешь), чекай свое старое железо в рекомендуемых, возможно все будет работать из коробки
>>803010
> Наверное в джаве так не сделали чисто из-за легаси, да и просто привычка уже.
В ней так не сделали потому что ты, уёбище, не понимаешь чем серверная тактика работы с памятью отличается от твоего говна на мобилках. Видишь ли, просто удаляя всё когда не нужно ты получишь жутчайщую фрагментацию кучи, из-за которой твоё говно будет работать медленнее раби.
>Вот если бы ещё и без подсчёта ссылок работал было бы всем счастье.
А как в расте хисптеры взвыли бы.
>просто удаляя всё когда не нужно ты получишь жутчайщую фрагментацию
Когда у тебя их обрабатывается больше пары мегабайт, соответственно.
спасибо, бро, думал в сторону хакинтоша, но боялся проебаться с железом, отличный сайт с гайдами порекомендовал, его бы в шапку закрепить.
>риалтайм блять. Ой ебать как же у меня часто военные делают заказы на риалтайм. Сука какие фантазёры.
Может он хочет графику писать или компуктервижен, почему у тебя риалтайм ассоциируется с какими-то задачами гос. важности?
>Кидайте ссылки на даунов со стековерфлоу от которых вы всю хуйню услышали.
А ты сам до вики не дополз походу.
https://en.m.wikipedia.org/wiki/Automatic_Reference_Counting
> memory management enhancement where the task of keeping track of reference counting for objects is removed from the programmer and onto the compiler.
...
>Under ARC, the compiler does this automatically by examining the source code and then adding the retain and release messages in the compiled code.[3]
Первый же сука абзац.
извините, братишки.
>почему у тебя риалтайм ассоциируется с какими-то задачами гос. важности?
У меня риалтайм ассоциируется с детерменированным временем выполнения задачи. Согласись, не часто встретишь в ТЗ указание времени на отработку задачи. Ну хз мб, конечно, это универ мне мозг проел и надо воспринимать риалтайм как "чтобы игрули можно было поиграть".
Реальность такова, что игры пишутся и на языках со сборкой мусора. При этом сборки делают частыми, многопоточными. В общем люди играют майнкрафт и им ок. И в таком случае значение вопроса "можно ли применять в риалтайм проектах" пустеет.
> https://en.m.wikipedia.org/wiki/Automatic_Reference_Counting
Оох ебать как же я всосал.
>>803477
>Ебать даун.
Помилуй, анон. Не гноби так сильно.
Ладно, если серьёзно - что этот механизм сильно умнее того чтобы расставить декременты перед присваиванием и выходом из скоупа? Компилятор сможет отловить циклические зависимости?
Пиздец как эпл всех обыграли. Пытаюсь представить какая выходит экономия в сравнении с плюсами и походу ровно нихуя. Что там оно заходит в метод ретайн и декрементит, что в плюсах заходит в деструктор и декрементит. Остаётся плюсом только некий leak-анализ.
Я тут придумал пример, который может подтолкнуть тебя к размышлениям.
Вот сборщик мусора и счётчик ссылок как ни крути это рантайм инструмент работы с динамической памятью (призываю тебя поправить меня, если я уже здесь не прав).
И вот, допустим, я пишу свой JVM язык. Достаточно простой. Компилятор на самом деле принимает на вход java-код и на выходе отдаёт java-код для javac. Всё что он делает самостоятельная - это использует какие-нибудь очень крутые эвристики (машинное обучение с огромными моделями на каких-нибудь йоба кластерах) для того чтобы расставить "System.gc();" в тех или иных местах. Чтобы ещё больше реализма добавить - пускай он в начале отключает сборщик (вроде в шарпе так можно, да и в джаве тоже).
Как считаешь: можно ли сказать что такой язык (ну, компилятор) решает проблему освобождения памяти на этапе компиляции?
>Реальность такова, что игры пишутся и на языках со сборкой мусора.
Реальность такова, что кроме полутора игр в которые входит убогий майнкрафт и 0,5 аркадок. Много знаешь движков уровня уныл/край-энджайна на джаве?
Всякие сценки и логика да, пишутся на скриптах – там трудно заставить GC тормозить всё.
>многопоточными
Самый "многопоточный" GC который разработало человечество умеет только переносить фазу маркировки в отдельный тред, но всё так же останавливает мир. Ладно, ещё есть всякая закрытая коммерческая хуита с детерминированным временем сборки, только хули она меняет.
>умнее того чтобы расставить декременты перед присваиванием и выходом из скоупа?
Нет, просто отслеживает время жизни не только локальных переменных.
>Компилятор сможет отловить циклические зависимости?
Нет, это не GC.
>Пытаюсь представить какая выходит экономия в сравнении с плюсами
Такой что обычной макаке не нужно видеть этих деталей – она может не задумываясь шлёпать софт чтобы эпл всех продолжали кормить дерьмом народ в своей отчётности в виде "у нас н миллиардов приложулек в аппсторе".
>>803924
>Вот сборщик мусора и счётчик ссылок как ни крути это рантайм инструмент работы с динамической памятью
Только в случае с обычным счётчиком ссылок.
>System.gc();
Ты хуй с пальцем сравнил. У ARC по расписанию удалится один объект (вся эта шелуха именно про подсчёт ссылок – попытка авторов сделать из си смалтолк, а не какая-то необходимость), вызывая сборку ты начнёшь сканировать всю кучу, чистить её и делать всё остальное в зависимости от вида сборщика.
А я в свою очередь подтолкну тебя к размышлениям:
Вот есть у тебя граф объектов из хотя бы пары сотен нод. Что быстрее: обойти его один раз, пропустив при этом старое поколение (по хорошему как минимум треть графа) или отслеживать каждый объект отдельно (причём если что-то поудаляется ты получишь трилионы индирекций и убьёшь нахуй локальность данных, даже если они не особо взаимосвязаны).
Короче: эпл сделали простую хуиту для простых приложений, выгодную в простых приложениях, не больше.
>Много знаешь движков уровня уныл/край-энджайна на джаве?
В хаксе сборщик мусора бай-дизайн, и на нём написан коммерческий движок от создателей геймбрюи. Просто все (кроме Нотча) делают так, чтобы сборщик мусора не работал, а если он не работает, то и деградации производительности нет. В принципе, то же самое и с ручным менеджментом памяти на крестах/сишке.
Ахуеть, ты совсем дурак? У тебя спрашивают про ААА движок, который отлично работает и на среднем железе вроде плоек, а ты написал по какую-то хуиту от девелоперов флешь игр?
>Реальность такова, что кроме полутора игр в которые входит убогий майнкрафт и 0,5 аркадок
Андроид, юнити, да и ещё наверное много такого. Про край-энджайн не знал - звучит вполне весомо. Ну в общем да, мир трипл-А игр конечно же не завален сборщиками мусора. Да поинт был не в том. Я говорил в том что требование реалтайма в реали не ставится и при определённых обстоятельствах можно сделать игрулю на языке со сборкой, а значит нельзя однозначно понять что же скрывалось в этом вопросе "а можно мне риалтайм язык".
>Самый "многопоточный" GC который разработало человечество умеет только переносить фазу маркировки в отдельный тред, но всё так же останавливает мир.
Кажется я столкнулся с экспертом. Допустим сборщик может расширять хип (но можно это сделать, просто добавив кусок хипа, хотя предпочтительнее realloc). Может компактить. Но если он чисто марк-свип, то зачем останавливать потоки? То есть после того как он пометил хип, вызвал финализаторы у недостижимых переменных, и дальше ты думаешь он реально что-то удаляет?
Правда во время пометки он ставит много блокировок, но это не stop-the-world.
> Нет, просто отслеживает время жизни не только локальных переменных.
Какие ещё бывают? статики, да строковые константы?
> У ARC по расписанию удалится один объект
По расписанию совершится декремент.
Блять да хуй знает дальше ты мне поясняешь за то как они работают, но самый первый посыл был в том что там сверху челы делают быстрые выводы по википедии и начинают накручивать себе, что у них в свифте тот же раст, только полегче. Твой посыл про компайл тайм проверки тоже подзаебал.
Кстати в сборщиках компакт или копи происходит не так уж повсеместно. По крайней мере в старом поколении оптимизировать локальность не так уж удобно.
То есть хип бесконечно разрастается и никто за ним не следит?
Кстати к слову вспомнилось, что в питоне есть счетчик ссылок и сборщик мусора (удивительно для такого медленного языка) и можно отключить сборщик, если ты уверен, что не будет встречаться циклов. Мб ты про что-то такое же.
Тут один дауненок никак не уймется >>803881
Но он заставил меня задуматься: а чем Swift лучше чем GO?
Те если google решит пересесть с пик (java) на хуи, то почему это должен быть язык конкурентов,
а не их собственный?
Бля это конечно охуенно, что до 2011го на и без того убогом обжектив-с приходилось вручную подкручивать счетчик ссылок. Так и представляю большую функцию в конце которой retain; retain; retain;
Ладно, не это хотел сказать. В этих ваших трипл-А играх, когда shared_ptr доходит до нуля, вызывается delete и дальше идёт какая-нибудь оптимизация локальности? Или оптимизация локальности будет уместнее в скриптовой логике?
Не ну ладно, ок. Тут можно возразить что разрабы по максам используют пулы объектов. Но идея вот в чём: ты называешь арк хуетой для простых приложений и при этом по-видимому единственная претензия в локальности данных. За которой совсем не следят в C/C++.
>Андроид
https://github.com/android
2/3 сишных и плюсовых проектов. Упс.
>юнити
Там основа в виде рендера и прочего тоже на крестах, внезапно.
>а значит нельзя однозначно понять что же скрывалось в этом вопросе "а можно мне риалтайм язык".
Просто ты пытаешься этого не понимать потому что тебе не хочется уступать в споре, лол.
>и дальше ты думаешь он реально что-то удаляет?
Конкретно жвм нихуя не удаляет, но как минимум зануляет.
> По крайней мере в старом поколении оптимизировать локальность не так уж удобно.
Может поэтому копи-компакт сборщики делают это при каждой итерации сборки и не имеют с этим серьёзных проблем?
>>804120
> В этих ваших трипл-А играх, когда shared_ptr доходит до нуля, вызывается delete и дальше идёт какая-нибудь оптимизация локальности?
Там где нужно их просто не используют. В плюсах в отличие от свифта ээто просто один из доступных средств менеджмента памятью.
>Или оптимизация локальности будет уместнее в скриптовой логике?
Там работы с памятью как таковой вообще быть не может кроме хуиты вроде встроенных контейнеров. А вот они даже в плюсах имеют такие опции или дописываются свои, та же EA недавно свою STL на гитхаб выкинула.
>За которой совсем не следят в C/C++.
1) Умные указатели в 95% ситуаций используют для регулирования владения в клиентском коде, а не отслеживания времени жизни чего-то там.
2) С чего ты взял что за ней не следят? Это опять же единственный способ мм там или что?
Да заебывает чутка. Ты не ответил какие бывают переменные кроме локальных.
мм - это memory manager? Ну всего там один delete ну и более низкоуровневые. Он не оптимизирует локальность. Поверх него строятся счетчики и сборшики которые тоже не оптимизируют.
Если говорить про джаву там копи только в молодом поколении. Наверное ты сам понимаешь это. Поэтому мое утверждение про локальность в старом поколении все ещё актуально. Если ты уверен что там есть переупорядовающий компакт - валяй, просвети.
Зачем занулять память после пометки вообще хуй знает. Мб ссылку какую нибудь дашь на этот счёт.
>Да заебывает чутка. Ты не ответил какие бывают переменные кроме локальных.
Статические, а ещё объекты иногда живут дольше переменных (ВНЕЗАПНО блять) и отслеживать надо их время жизни а не переменных. Поэтому, блядь, ARC отличается от обычных скоупов.
>мм - это memory manager?
Это мемори менеджмент. Сам прочитай что я написал для начала, прежде чем писать хуиту:
>единственный способ мм
>Он не оптимизирует локальность
Там пишутся свои аллокаторы под каждый контейнер и др. хуита для дефрагментации, никто не строит сборщики и счётчики там где это не всралось.
>Зачем занулять память после пометки вообще хуй знает
Зачем писать хуйню если ничего не понимаешь? Вот хуй знает.
Наверно потому, что:
а) Банально легче дебажить;
б) Чтобы кроме своих данных в свежевыделенной памяти нельзя было наткнуться на мусор. Это как минимум небезопасно как со стороны логики кода, так и со стороны возможность эксплуатации такой уязвимости.
>>умнее того чтобы расставить декременты перед присваиванием и выходом из скоупа?
>Нет, просто отслеживает время жизни не только локальных переменных.
Ладно чел. Как думаешь в слове декремент какой смысл? Ну то есть ладно уверен ты знаешь что это -1. Но -1 по отношению к чему?
Если пишешь под айфоны и айпады, эти устройства нужно приобретать? Или эмулируется все нормально.
Ну не знаю. Мне понравилось как он объясняет.
Раст - кал и не выстрелил. Свифт тоже не впечатляет, но успех ему гарантирован. Зачем обсуждать кал, который никому не нужен?
>>787843
>да и на яблочных пеках скоро будет хорошая конкуренция в виде WPF и прочего
Ахахаххахахахахаха
>>806483
>Нужно, там в отличие от андроида нихуя не эмулируется.
ЛОЛШТО
>>803929
>эпл сделали простую хуиту для простых приложений, выгодную в простых приложениях, не больше.
ИКСПЕРТЫ СРЫВАЮТ ПОКРОВЫ
>>802652
Бери Mac Mini если денег нет, только смотри чтоб памяти было 8GB.
вышел из /pr/
> 2016
> Использовать ARM образ android эмулятора
Да там даже гугл рекомендует на x86 тестировать,
для армов юзают реальные девайсы
Swift или C#? Выбор из этих двух.
1) Где проще синтаксис?
2) Где больше перспектив?
3) Что быстрее изучается?
Потому что его будущее уже гарантированно эплом.
Шарп так-то перебивается на гуёвинами на шинде при всей помощи мс-а, а из дотнеткора наврятли что-то лучше платформы для аспточканета запилят.
Насчёт "шарп проще" кстати сомнительно.
Нет, не так.
подойдёт ли macbook air 13 1.6 проц 8 rg RAM для программирования? Прошку не предлагать, денег нет, интересует именно, потянет ли air с таким конфигом работу.
Уже года 3 разрабатываю под Android на Air 4GB Mid 2013.
Работаю в Xcode, IDEA CE, AndroidStudio, Xamarin.
Так же тестирую IDE Rider (для C#) работает быстро - SSD решает.
Главное никогда не запихивай все UIControll в один Storyboard.
А проц какой?
Есть ли минусы, чего не хватает? Экран как тебе, глаза не вытекают после 3-4 часового сидения?
Какой хард имеешь, 128 или 256?
>глаза не вытекают после 3-4 часового сидения?
Сижу по 8 часов в день, и после работы еще как минимум 4.
>128 или 256?
128ГБ. Раньше держал еще Windows10 для Visual Studio на втором разделе и вечно не хватало места.
Теперь перешел на VisualStudioCode (мини-C#-IDE для macOS) и удалил нафиг Windows.
Спасибо, успокоил. Буду тогда минимальную комплектацию брать, а то за апгрейд до 256 приходится платить почти 20 тыщ.
>за апгрейд до 256 приходится платить почти 20 тыщ.
Палю годноту: https://www.ulmart.ru/goods/994779
Укороченная карта памяти, смотрится красиво и почти не выпирает.
Идеальна для файло-помойки
Так же желательно ее зашифровать (стандартными средствами macOS),
если кто ее достанет, то все равно не сможет прочитать.
Круто, анончик, спасибо за наводку, обязательно докуплю
Вроде такой приятный язык и имеет перспективы за пределами эплоэкосистемы.
>>807536
>Потому что его будущее уже гарантированно эплом.
Ага, а в 2001 ты бы сказал, что будущее Шарпа гарантировано MS, а идея о том, что Эпл может что-то гарантировать, была откровенно смешной.
Я думаю, самое лучшее будущее у языков, которые не зависят от какой-то одной корпорации. Поэтому Жаба, какой бы старой и уродливой она не была, не умрёт. Разве что ещё заменит какой-нибудь Котлин, а значит если не Жаба, то уж точно JVM имеет будущее. У Свифта, как я писал, перспективы выйти за пределы маков и айфонов есть и хорошие, но это пока только нереализованный потенциал. У C# и то получше дело обстоит (хотя не очень хорошо, конечно), и даже 5-10 лет назад было получше.
>Шарп так-то перебивается на гуёвинами на шинде при всей помощи мс-а, а из дотнеткора наврятли что-то лучше платформы для аспточканета запилят.
Лол. Гуёвые десктопные приложения уже давно в меньшинстве, C# - это прежде всего как раз и есть ASP.NET и ещё Unity, причём Unity кроссплатформенный и однозначно доминирует в своей нише (геймдев за пределами AAA).
>Я думаю, самое лучшее будущее у языков, которые не зависят от какой-то одной корпорации. Поэтому Жаба, какой бы старой и уродливой она не была, не умрёт.
Ты сам себе противоречишь.
И да у какого-нибудь Питона дела в этом смысле ещё лучше
Есть ещё у кого что добавить про MBA для пограминга?
>>810599
Если я правильно тебя понял, ты ставил VM винду на air? Как он её тянет, не перегревается?
>ты ставил VM винду на air? Как он её тянет, не перегревается?
Нет у меня 4gb ОЗУ, я диск разбил пополам и через BootCamp поставил Win10 на второй раздел.
Особо не грелся, VisualStudio нормально работала благодаря SSD, но батарея садилась быстрее раза в 1.5.
Это суть студии и дотнета, а не винды. При всей её критике всё же она как рабочий инструмент куда удобнее макоси.
>>811324
Она не планирует его куда либо вообще портировать – сам компилятор языка просто не привязан к какой либо платформе вот и всё. Инструкции по компиляции или вот такие https://swiftforwindows.codeplex.com хуитки найти не сложно. Другое дело рантайм и стандартная библиотека, конечно.
В двух словах – всё как с обж-с, большего ожидать не стоит.
>>811442
А это такая большая роблема? Особенно в мобильных приложениях-то, очень крутую видимо архитектуру видимо требуется хуярить ради пары окон.
Ну это хуйня какая-то получается. Они кинули в опенсорс свой язык, почти добазарились с гуглом заменить джаву, хотят чтоб свифт всё поработил. А в итоге кодить можно только с ебучего мака. Сами себе яму роют. Так сложно чтоли добавить в Xcode поддержку работы на винде.
>почти добазарились с гуглом заменить джаву
Это просто слухи, никто даже не начинал базарить. Они просто заменили обж-с который пугал людей незнакомых с программированием, чтобы те могли больше говна в аппстор шлёпать ради статистики.
Пусть сначала выпустят первую стабильную версию языка, которую не изменят через два месяца.
>Так сложно чтоли добавить в Xcode поддержку работы на винде.
Да, блять. Он написан изначально под макось со всеми её фреймворками и прочим – как думаешь, сложно ли портировать всю оконную подсистему на шину?
Я уже запилил экран меню с названием и кнопкой начала игры (класс SKScene, который назвал MenuScene). Нажав на кнопку переход к другому SKScene под названием GameScene. В нём текст, кнопка возврата в меню и две кнопки А и Б.
Ощутив себя гениальным программистом, я тут задумался, что как-то хуёво будет вложенными ифами пилить логику. Но и переходить на новый SKScene на каждый кусок текста тоже как-то объебосно. Как сделать логику отдельно от кода? В моём представлении что-то вроде таблицы сцен, для каждой указать текст этой сцены и куда переходить при том или ином выборе. Плюс чтобы он распозновал концовку, с которой никуда не нужно переходить кроме меню. Загружаем в GameScene текст первой сцены ну и идём дальше. Можно ли это сделать через plist? Это же как раз такой способ сохранения структурированной информации, которую можно из кода цеплять? Вроде как должно быть возможно запилить всю инфу о сценах там.
Как эту хуйню реальзовать, анон? Я смотрю и читаю туториалы по СпрайтКиту, но там везде про отрисовку и взаимодействие спрайтов. А такой вот логики переходов нигде не показывают.
Я понимаю вопрос тупой для тех, кто кодит постоянно, но я по работе занимаюсь вещами далёкими от программирования. За это взялся чтобы отвлечься от основных занятий, ну и навык может быть полезным всё равно.
инб4 "воспользуйся фреймворком для новелл" я хочу это сам всё сделать с базовым СпрайтКитом
Ебать. у тебя фундамента нет судя по всему никакого. сделать отдельно бд с тексктом и пикчами, и один экран с выводом этой модели, а там уже переключай модели в зависимости от нужной
Да, у меня только есть понимание самого кода: как пилить циклы, что такое объекты, то есть на базовом уровне знаю несколько языков. Но я ни разу в жизни не использовал эти знания в реальных проектах, поэтому структуру чего-то реально работающего я не понимаю.
Лучше всего помогают примеры и туториалы. Но как я написал, они все в основном про всякие простенькие леталки, раннеры и прочее. Тупо про то как создавать, двигать и взаимодействовать спрайты между собой.
Напиши плиз, как именно ты бы это реализовал, конкретнее с примерами если не сложно.
>А это такая большая роблема? Особенно в мобильных приложениях-то, очень крутую видимо архитектуру видимо требуется хуярить ради пары окон.
Ну Суифт, возможно, будет использоваться не только в мобильных приложениях с парой окон.
Это задача на push_back.
Берёшь json, пишешь
{
{ 'dialog_id' : 42,
'text': 'Hello world',
'replies': [666, 1488],
},
{ 'dialog_id': 666,
'text': 'cool'
'replies': []
},
{ 'dialog_id': 1488,
'text': 'mamku ibal xDDD)))'
'replies': []
}}
Что с этим делать, догадаешься?
Спасибо.
Полагаю, надо запилить какую-нибудь функцию типа LoadDialog(id), которая будет парсить JSON и выводить текст из диалога с нужным id. В зависимости от выбора она будет рекурсивно запускать сама себя с нужным следующим id и заменять текст, пока не дойдёт до какого-то конечного диалога, в котором не будет вариантов продолжения.
Это оптимально или есть более простой/изящный вариант?
Нельзя ли то же самое в plist сделать?
Лень расписывать все в десятитысячный раз.
>>812598
Обж-с оттуда так и не вылез за столько-то лет, при наличии портированного рантайма и всего прочего.
инб4 офф дока
Тем что там для тех кто уже кодил, а мне надо структурировать знания и там в оффбуке чисто язык, а мне с применением его надо по иос его
Ну так что из трех книг брать?
ОбжЦ просто нигде больше нинужен. Он умер своей смертью в 80-е, затем в 2000-е его выкопали и как бы воскресили. Если бы не самодурство Apple, никто бы на нём не писал.
Дык со свифтом то же самое – он нахуй не нужен для чего-то кроме мобилок, и не имеет никаких преимуществ перед остальными языками в их нишах.
Гугл уже прямо намекают про свифт поддержку. Я в jet brains тестировщиком работаю и нам говорили про переход постепенный гугла на свифт так как хотят упростить создание приложений.И у гугла и эпл в планах открыть школы по разработке в Индии.
Так всё правильно - я и писал про то, что он нужен только на мобилках, и больше нигде использоваться не будет.
>постепенный гугла на свифт так как хотят упростить создание приложений
И заодно переписать с нуля Android SDK, внести кучу изменений, с которыми не все согласятся (дело и до форка может дойти) и превратить всё, написанное до 2016, в легаси.
А между тем переход на Kotlin позволит упростить создание приложений без всего перечисленного выше.
>>814487
Ну нет, если Swift всё же станет стандартом мобильной разработки, кодеров на нём будет столько, что станут резко набирать популярность веб-фреймворки на Свифте, GUI-фреймворки и т. д. и т. п. То же, что произошло с JS.
Жс этот путь проходил десяток лет. Индустрия разгоняется и повторить такое – всё равно что убить живу или плюсы. Этого просто не произойдёт.
>Я в jet brains тестировщиком работаю
А я в гугл уборщицей, и нам сказали что все на GO переписывать будут.
Трустори, я не тролль
Если я куплю бу Mac mini 2010 года то он запустит среду разработки? Компилировать сможет?
Будет-то будет, вопрос в том что ты получишь ебучий лагодром, и выдавишь себе глаза когда увидишь как макось рендерит шрифты вне хайдпи экранов.
А самая дешевая модель современного Mac Mini более и менее заведет среду разработки?
Моник HD ready пойдет?
Есть "полностью" фоновый GC, но стоит от 3к евро за сервак. Запилино на барьерах насколько помню
Во-первых, не "полностью", а с "константным временем сборки". Это несколько разные вещи всё же.
Во-вторых, на барьерах запилен вообще любой конкурентный и/или основанный на поколениях сборщик, вась.
Другое дело что там хардварные фишки вроде поинтер форвардинга и ремемберед сетов до сих пор редкость (хуй знает почему кстати, такие железки уже 2 десятилетия клепают), за то и такие деньги.
Не, это другой GC. Есть вообще фонововый GC, который не делает stop the world. Называется Azul GC.
> Mac mini 2010
Обязательно купи для него БЫСТРЫЙ SSD (хоть на 32 или 64 gb).
Без него это будут ебанныые тормоза, на любой запуск чего угодно.
Сравнивал macbook 4gb ОЗУ + SSD и mac mini 8gb ОЗУ + 1TB HHD - первый в разы быстрее.
Apple MacBook Pro Late 2011 A1278 Core i5 2435M 2.4GHz 8GB 500GB 13.3" OSX 10.9
Так мак про тоже уже устаревшая мусорная корзина.
> Они просто заменили обж-с
Уже 3 года после релиза свифта, но все встроенные программы на iOS и macOS написаны на objc, даже совсем свежие Photos и переписанные с нуля Spotlight и Disk Utility в прошлом году. Эппл сами клали хуй на свифт, только зачем-то раздувают хайп в среде сторонних разрабов.
Насколько я помню на презентации как раз говорили что они переписаны на свифте.
Во-первых, такого никто не говорил. Во-вторых, сделай classdump или otool -L если сомневаешься.
У тебя и пикрилейтейд говнокод.
Ну хуй знает. Я отжалел 1.2 к$ за макбук эйр. Не могу нарадоваться. Всё конпилируется шустро, IDE нихуя не тупят, благодаря ссд.
Можно было бы и мак мини, но его не возьмёшь куда-то, где нет моника. А с хакинтошем, думаю, хоть и на рекомендуемом конфиге нет нет да и будут какие-нибудь траблы. Я решил не ебать мозг и взял мак. Уже несколько раз окупился
Такого хрена, что когда ты вызываешь counter1(), то фактически ты вызываешь только adder(), а не весь makeCounter().
P.S. "Function within function" в твоем случае это просто лямбда с именем (adder).
> то фактически ты вызываешь только adder(), а не весь makeCounter().
А почему так в свифте устроено?
А почему нет? И Swift тут не причем, точно также это работает в Kotlin/Scala и любом современном языке с "честными" замыканиями.
Ты посмотри что ты возвращаешь из функции makeCounter - это adder, а adder это функция с телом "n=n+1; return n", нет в ней кода которая зануляет n.
>С чего бы?
https://flutter.io/faq/
>А в каких языках "нечестные" замыкания, просто любопытно?
Java (работает только в режиме readonly)
>Собственно для того Гугол и пилит новую ОС, чтобы для мобилок и кофемолок можно было кодить на Свифте
Ага, только маленькая проблема - новая ОС основана на VM для языка Dart.
И зачем мне нужен свифт, если я смогу на Dart писать сразу под android/ios/fuchsia?
При этом у меня везде будет один код и один UI.
>А в каких языках "нечестные" замыкания, просто любопытно?
Тут дело не в честности, а в том что в свифте замыкания по дефолту захватываются значения (а не копируются как он тут заметил про яву >>821278 ). https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html часть "Capturing Values".
В более низкоуровенных языках как плюсы и раст это все делается руками (соответственно, и замыкания более гибкие).
>>821322
>новая ОС основана на VM для языка Dart.
Пока что она основана на няшной, дарт там просто как основной язык для гуя (хотя обещают офф. биндинги на все мейнстримвые языки).
>И зачем мне нужен свифт, если я смогу на Dart писать сразу под android/ios/fuchsia?
Ну меня например рвет от вида жс-кода, а дарт при этом сумел вобрать самое хуевое из явы с жсом. Хотя для замены погремушек вроде Phonegap-a и reacnative - отличная идея, хоть аот компилятор завезли вместо интерпритатора.
>И зачем мне нужен свифт, если я смогу на Dart писать сразу под android/ios/fuchsia?
И зачем мне нужен Dart, если я смогу на Visual Basic писать сразу под android/ios/fuchsia/windows/windows phone?
>раст
>это все делается руками
Я не очень понял, что там делается руками? Там же вроде компилятор сам запихивает окружение в структуру и дает ей анонимный тип, от тебя требуется только понимание как ты это окружение будешь использовать: по значению/ссылке, мутабельно или нет. Поправь, если неправ.
Хотел использовать готовый Subtitle, но не смог настроить у него динамическую высоту ячейки.
Решил сделать свой класс под ячейку, написал, привязал оутлеты, всё заработало, но подобное решение оказалось нельзя реюзать в другой такой же таблице, для неё пришлось бы создавать снова те же лейблы и новый класс.
Поэтому решил влезть поглубже и сделать общий класс наподобие этого - http://stackoverflow.com/a/29000241
скопировал, подправил, добавил
tableView.estimatedRowHeight = 70.0
tableView.rowHeight = UITableViewAutomaticDimension
и
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
switch indexPath {
return UITableViewAutomaticDimension
}
func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
но ячейка никак не хочет растягивать под контент, хотя в самих лейблах текст бьётся на строки и отображается нормально.
Уже 5-й час пытаюсь найти решение, но везде или ковыряние в сториборде (что не подходит, т.к. хочу сделать 1 раз под все таблицы), или же решение для статичных размеров. Может, Subtitle можно как-нибудь доделать?
Помоги, пожалуйста, с решением.
Хотел использовать готовый Subtitle, но не смог настроить у него динамическую высоту ячейки.
Решил сделать свой класс под ячейку, написал, привязал оутлеты, всё заработало, но подобное решение оказалось нельзя реюзать в другой такой же таблице, для неё пришлось бы создавать снова те же лейблы и новый класс.
Поэтому решил влезть поглубже и сделать общий класс наподобие этого - http://stackoverflow.com/a/29000241
скопировал, подправил, добавил
tableView.estimatedRowHeight = 70.0
tableView.rowHeight = UITableViewAutomaticDimension
и
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
switch indexPath {
return UITableViewAutomaticDimension
}
func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
но ячейка никак не хочет растягивать под контент, хотя в самих лейблах текст бьётся на строки и отображается нормально.
Уже 5-й час пытаюсь найти решение, но везде или ковыряние в сториборде (что не подходит, т.к. хочу сделать 1 раз под все таблицы), или же решение для статичных размеров. Может, Subtitle можно как-нибудь доделать?
Помоги, пожалуйста, с решением.
>по значению/ссылке, мутабельно или нет.
Ну он наверн это и имел ввиду. Что все надо самому указывать. И получается непонятная ебола.
Не удивительно, ведь, как говорил Алан Тьюринг, "Студентов, ранее изучавших Objective-C, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации".
внезапный разрыв омегана внезапен
test
Как сделать так чтобы отрисовало пришедшие данные, как комплишн хэндлер захуячит в свифте?
Тому что надо в блок запихнуть, я хз как у вас там у свифеторасов эт реализуется.
protocol FullyNamed {
var fullName: String { get,set }
}
геттеров и сеттеров, почему в экземпляре класса мы все равно можем записывать в фуллнейм какие либо данные?
Я прост не пойму где поискать это. гуглил swift get set И не понял
Для более гибкого использование и будующего расширения, как и всё ООП. Создаешь заглушку геттера/сеттера, и используешь их. Когда понадобится что-то проверять/изменять/отлаживать - переопределяешь их не трогая клиентский код и всё.
1 пик - тут все понятно, я делаю протокол, который говорит что будут два метода, которые принимают такие и такие параметры
2-пик тут как я понял объявляю что моя переменная - будет тип протокола и типа мой инстанс верил вызывает эти методы которым на вход передаю вк и айтем?
3 пик- на третьем пике я типа реализовываю методы протокола, тут вроде все понятно кроме момента как узнать что туда не пустой контроллер и айтемы поступает?
4 пик - типа я первый раз перехожу и говорю мол этот контроллер куда я перехожу - будет типа этой верил, которая является типом протокола, т.е. до перехода у нас получается делегат нил все время был?
И как я понял как только я делаю действие со второго скрина, то он дергает методы с 3 скрина из предыдущего контроллера, верно?
Значит вынеси этот запрос в конкретный код и выводи информацию в блоке колбека. Оно ж асинхронное, чего ты ждал?
Alamofire.request перенеси в viewDidLoad.
Коллбек там начинается с .responseJSON { (это красиво завернутый коллбек в стиле современных флюид интерфейсов).
>>828954
Сложнее/проще - понятия всегда относительные.
Разработка Web-фронтенда меня убивает, постоянные велосипеды и лес подходов
> банально нет пакетного менеджера
Начали пилить одновременно с третьей версией свифта https://github.com/apple/swift-package-manager
Ну как бы нормально и для девятки какое то время девелопить. Хотя, может для заказчика будут очень важны какие-то фичи десятки. У меня, кстати, был случай, что баг воспроизводился только на айфоне 6. Ни на его симуляторе, ни на моём айпаде ничего такого не было. Пришлось покупать 6 айфон. Ну зато хоть проапргейдился
Лично мне приятнее и проще девелопить на свифте. Но заказчик хочет сэкономить и хочет кордову. Нахуй я ляпнул ему про это говно? Но может ещё отговорю
Всё то-же самое. Только в обжективе аргументы были до фигурной скобки, а тут внутри скобок. Почему сделали так - потому что аргументы таки можно иногда не указывать. Но блок всегда будет выглядеть примерно одинаково { ... } . Я сам ещё не до конца понял, когда можно не указывать аргументы, а когда нельзя. Так же блок может быть trailing. Т.е. list.sort { $0 > $1 }.reduce(0) { $0 + $1 }.
Т.е. выносим блок за скобки функции. А это намного читабельнее. С аргументами снаружи от скобок смотрелось бы хуже. И да, $0, $1, $2 - имена аргументов, если не указал их явно.
Про trailing блоки и про 0, $1 я читал. Прикольная вещь, но зачем заставлять вручную называть переменные когда их нельзя не указывать? Чому нельзя было сделать как в обже? Как я понял пропустить их можно только если все их использовать. Видимо я чего то не понимаю.
> Как я понял пропустить их можно только если все их использовать
Мне тоже не нравится, что иногда их нельзя пропускать. Надо будет почитать доки, чтоб разобраться, когда такое происходит.
Можно ещё использовать _ вместо имён переменных
{ _, _, _ in }
Да, хкод сам предлагает такой вариант если ничего не указать. Но все равно уебство. Как я понял переменные приходится обзывать потому что яблоко-пидарасы. В своих классах указывают просто типы. Когда создаешь свой метод можно указать в блоке названия принимаемой переменно. Да еще если использовать код из обжа, где названия переменных указаны, свифт их обрезает и приходиться опять писать их руками. К примеру из AFNetworking мне приходит вот такая штука: AnyObject?. И хуй ты поймешь что это такое пока не полезешь в метод.
Так в обже мне по нажатию enter прилетал не только тип но и название.
Есть короче книга она так и называется
algorithms and data structures in swift
но она пиздец хуеваякакпо мне
А нагую тебе конкретно на свифте? Все нормальные книги по алгоритмам используют псевдокод, который без пробам порисуется куда угодно.
>>832830
>Bolts Tasks is a complete implementation of futures/promises
Загугли по двум последним кейвордам если что-то непонятно.
З.Ы и фастом подскажите сколько должны быть header and foter у наших section height
А нихуя они вообще нужны? При рисовании на них насрать, при разработке протестировать и изменить эти вещи буквально пару минут.
Унификация всего дизайна?
Вопервых: дизайн должне делать дизайнеры с учетом юзабилити,
а не программист по каким-то фиксированным гайдлайнам.
>В human interfaces нихуя не объясняют про отступы и размеры элементов.
По секрету скажу, не встречал еще ни одного дизайнера, который брал бы размеры из гайдлайнов material design.
Максимум, они их диагонально просматривали на предмет общих правил.
>З.Ы и фастом подскажите сколько должны быть header and foter у наших section height
Поехавщий, оставь это решать дизайнерам.
Хули ты приебался к дизайнерам? Где я тебе высру дизайнера?
> По секрету скажу, не встречал еще ни одного дизайнера, который брал бы размеры из гайдлайнов material design.
Ты хоть на улицу выходил сына сычина? У нас даже в падиках марджины между дверьми и нарисованными хуями размеров в 16dp
>Где я тебе высру дизайнера?
Я обычно на fl.ru или frelancer.ru заказываю.
Или у тебя с этим какие-то проблемы, мамки бизнемен?
типа let ar: [[UInt]] = [[1,2,3,4...], [10,20,30,40.....]]
Поставил компилироваться, прошло уже 34 минуты.
Потому что свифт притягивает ту же аудиторию что недавно писала на ЖС. А там пакеты по 11 строчек от которых зависит несколько тысяч проектов - обычное дело.
Макросы не завезли? Сразу нахуй.
Лисподебил прибежал? В нормальных языках уёбищность функций не нужно прикрывать макросами - потому что это не лисп, и с ними тут все в порядке.
Все иморты с пода подсвечиваются красным. Че делать? Все компилится, но я не тян, и для меня не нормально, что в моей интимной зоне(IDE) все красное.
Всмысле? Он мне просто говорит что нет такого фрейма. Хотя автодополнение на этот нейм пашет, как и в импортах все окей. Сначала я это все в икскоде писал естественно.
З.Ы SwiftyJSON либа
Только что добавил Bolts фреймворк в подс файл, заапдейтил все. И в итоге теперь все ок в appcode.
Обясните долбаебу(мне). В ЧЕМ РАЗНИЦА МЕЖДУ completition handler и Promises???
И еще, что лучше использовать Promises или нотификейшн ивентбусы по типу дефолтного NSNotificationCenter
Онли по знакомствам. Сам так устроился, и слышал от тим лидов, что берут только если кто то посоветует, и редко когда люди сами в поисках работы обращаются, естественно с ебунячим опытом и тоннами навыков. Плюс от коллеги слышал что, если ты без образования, то только по знакомствам, т.к даже не спрашивают, а если без знакомств, то обязательно нужна хотя бы одна вышка. Сам я среднеспециальное получил, а потом меня через знакомых посоветовали в компанию, где сейчас я и работаю уже второй год. Про образование никто никогда не спрашивал, только бухгалтерша единожды когда оформлялся, и то, ее перебил тимлид, и сказал "Забей, все впорядке".
А что, гарбаж коллекторы уже научились без помощи программиста собирать циклические ссылки? Когда я программировал в 7й яве, там точно так же надо было делать weak ссылки. Так они есть и в свифте. Что ещё надо? Альзо, в нулевых или начале десятых, в обжективе был сборщик мусора. Но потом его выпилили и запилили счётчик ссылок
Промисы больше нужны, когда у тебя куча вложеных друг в друга коллбэков. Нотификации - это способ уменьшить количество зависимостей между классами. Убрать ссылки друг на друга. Они не лучше или хуже, просто они немного для разных вещей используются. Хотя, иногда могут выполнять и одну и ту же задачу
Плохо программировал. Жабовский GC прекрасно удаляет острова с циклическими ссылками.
Меня препод в универе пригласил обезьянничать в фирме, в которой и он работал. Причём мне предложили работать даже не за еду, а за 300 баксов. Правда я им показал несколько самописных прог и сайт, который я наваял для школы, в которой проходил практику.
>Когда я программировал в 7й яве, там точно так же надо было делать weak ссылки.
Што ты пиздиш малец, в Android который базировался на Java 6 не было с этим проблем.
Вот открыл первую ссылку гугле - 2009 год и уже все в курсе про корневое множество.
ну вот же ну епта, первая блядь ссыль в гугле.
http://stackoverflow.com/questions/6697247/how-to-create-plist-files-programmatically-in-iphone
Спасибо. А теперь как этот плист сохранять в айклауде пользователю?
as! - кастует объект в нужный класс. Если объект не того класса, то будет эксепшен.
as? - то же самое, но эксепшена не будет, а просто вернётся nil. Постоянно использую as?
1. Абстрактных методов и абстрактных классов
2. Юзерских аннотаций. Было бы круто запилить аннотацию для нотификаций. Типа @NSNotification("BLA_BLA_BLA") func didBlaBlaBla() {}. Насколько нагляднее было бы. Да и много где пригодились бы
протектед.
чёто вообще хз как жить без протектед, если пытаешься что-либо обобщить в базовый класс.
Кто что скажет за ёбаный паттерн VIPER?
У нас на проекте тимлид угорел по нему, на митапе долго рассказывал как всё будет МЕГАОХУЕННО И ЧИСТО. В результате в коде всё настолько ИЗОЛИРОВАННО-ПЕРЕИЗОЛИРОВАННО что для любого чиха нужно создать от 3 до 6 файлов и всё подключить только в одном ПРАВОСЛАВНОМ порядке иначе БОХНАКАЖЕТ пиздец. Меня и ещё несколько коллег это уже люто заебало. Это мы просто дауны и не понимаем всю охуенность или реально что-то не так? Никто не сталкивался?
Согласен. Мне тоже на хватало пару раз. Думаю, к свифту 4му одумаются.
> VIPER
Не разбирался пока, но чувствую, что такая же хуита для фанбоев, как и dependency injection. Пол-дня пишешь конфиги-хуёнфиги, классы хуяссы чтобы сделать простейшую вещь
RxSwift
Ты долбоеб, на простейшей вещи тебе показывают как это работает, чтоб ты мог применить ее на большом проекте, естественно для простейшей вещи никаких особенных паттернов не нужно. Более того, с опытом ты сам будешь замечать, что сам додумался до части паттернов, и сделал себе проще, и поймешь, что если бы сразу вник в теорию, то тебе бы не пришлось тратить своего времени.
что ты несешь, поехавший? Во-первых, файлы с расширением xib называют нибами, во-вторых, это единственное что понятно из твоего описания, опиши по-человечески, приложи код, который якобы не работает как ты хочешь
Блядь.
Есть ниб, есть аутлет на вк, допустим
@IBOutlet var huyPizdaView: HuyPizdaControl!
в нибе с классом HuyPizdaControl есть проперти pidor
так вотиз вк хочу туда в пидора передать что-то
Вроде делаю все правильно, во вьюконтроллере на котором валяется вьюха с нибом пишу huyPizdaView.pidor = "pidor"
но крашится в ксибе мол там nil, так какого хуя нил? На каком этапе я там могу pidor использовать? Мне просто параметры надо передать в ниб для отрисовки некоторых элементов с параметрами
А нахуй тогда WeakReference? Это может в какой седьмой жабе появилось? У нас всё было на 6й. А потом я выкатился из жабы
Ты должен включить режим сплит скрина (кнопка 2 пересекающимися окружностями) и заасайнить вью из ксиба и пропертю из класса. Перетаскиваешь вью на пропертю и держишь при этом CMD
у тебя ниб не загружен, однозначно, и не факт что он вообще грузится, ты в этом уверен? Ты в IB поменяй проперти какие-нибудь и посмотри, появляются они или нет, скорее всего нет, т.к. ниб и класс не связаны, то что ты название дал такое же - еще ничего не значит
Там всё на столько плохо? Стоит ждать обновлённый учебник?
Только начинаю изучать язык
>>848215
Алло чуваки, сам ниб у мен язаебись отрабатывает, все ок, рисуется, все работает, анимируется. А вот когда в него ж хочу передать чет, то беда.
Дело в том что сама переменная содержит данные из вк, но только если допустим если я ее читаю в каком нибудь методе что срабатывает потом, допустим таргет повесил на кнопку там и там же посмотрел ее, а вот если сразу грузить ниб - то нихуя. Вот поэтому я и не понимаю почему так, вроде после loadViewFromNib и прочих ништяков гружу, когда уже по факту все отрисовалось, а нихуя
Вот как раз хочу узнать почему на начальном этапе он еще не читает ее.
Ну еб твою мать. Допустим было stringByReplacingSubstring(dfdfg, with: sdfsdf) стало string(byReplacing: dfdfg, with: sdfsdf). Если уж код комплишен не поможет, так нагуглишь. Если для тебя это представляет проблему, то может ты не туда зашёл?
"порезали имена" в интеропе с cocoa, "обновленный учебник" давно есть в айбуксе
>код комплишен
это говнище глючит и падает с первой и до третьей версии свифта. В обжс все заебись работает, иногда жалею что связался со свифтом, эти тормоза комплишена, эти тормоза сборки, на обжс все летало
Извини что ты даун
хакинтош в ту же цену
Ну если хочешь чтобы отвечали более менее быстро — пиздуй в конфочки, это биржа как никак.
А че за конфочки? Я опять застрял - не могу привязать лейбел, пишет Outlets cannot be connected to repeating content
https://github.com/apple/swift-evolution/tree/master/proposals
Учить его в любом случае придётся.
Программирование мышкой там заканчивается на создании базовых форм. Этой самой мышкой ты даже обработчик для кнопки не сделаешь как во всяких дэльфи.
Swift - просто современный язык общего назначения, если бы Джава или C++ делались в 2010-е, они бы выглядели примерно так же, и никаких фундаментальных отличий от других статически типизированных языков общего назначения у него нет: просто чище синтаксис, лучше поддержка функционального программирования и при этом удалено то, что давно пора было удалить, но в других языках терпят ради обратной совместимости. Неслучайно же Swift так похож на Kotlin (ещё один язык, созданный в 2010-е, и тоже не заточенный под что-то специфическое). Единственной необычной фишкой является ARC вместо GC (в Котлине, например, как раз GC).
И применять Swift можно для чего угодно, в том числе игор, веб-бэкенда и т. д.
Программирование мышкой по-моему вообще распространено при создании GUI, это не фича Свифта как такового.
>И применять Swift можно для чего угодно, в том числе игор, веб-бэкенда и т. д.
(В смысле в теории можно, на практике нужных для этого либ/фреймворков либо пока нет, либо только появились, но в принципе есть, скажем, веб-фреймворк Kitura)
До сих пор нет нормального пакетного менеджера, либо люди пользуются не пойми чем.
Пилят swift package manager, хотя тащем-то есть cocoa pods и они мне нравятся больше. Потому что в swift package manager пакеты - это классы. Ну что за нахуй?
И еще момент - как могут наебать при покупке б/у с рук? Скажем, может ли быть тот же mac mini китайской (дважды китайской, я имею в виду) подделкой с говном на борту? Как отличить?
Думал об этом, но не уверен, что ноут потянет его нормально, и там, говорят, ебли много с кекстами.
Еще есть вариант некро mac mini 2007 года с 4gb ну совсем за копейки, в эту сторону лучше вообще не смотреть, да?
Не знаю на счет новых мини, но в свой late 2012 я запихал 16гб и ссд. Так что не смотри на память, ее можно докупить.
Возможно ли через приложение на iOS изменить куки в Safari?
Ищи mac mini 2012, они мощнее, чем 2015.
По поводу хакинтоша, если железо подобрать, то проблем быть не должно. Кексеты поставить не проблема. У самого даже на AMD получилось поставить El Capitan, но все же покупаю i3, ибо железо устарело и ебли с интелами поменьше. Плюс есть плюшки для эмуляции Андроида
Если на ноут ставить, то ищи модель ноута с hackintosh, может кто-то до тебя уже все опробовал.
Оперативки и 8 гб хватить должно, на мой взгляд
На форумах пишут, что мой ноут не поддерживается, либо с ним ебля возникает.
Mac mini 2012 есть на амазоне - там можно брать? Не кинут?
И где потом память к нему взять? Поди, в обычном-то магазине не купишь.
https://www.avito.ru/ekaterinburg/nastolnye_kompyutery/mac_mini_2007_848257121
Такой вообще бесполезен?
Эх, где мой 2007...
Анон, тогда что лучше:
Mac mini Late 2012, Core i5 2.5 GHz, 4 GB, 500 Gb, HD Graphics 4000 с перспективой апгрейда оперативки
или
Свежий MGEN2RU/A Intel Core i5 2,6 Ghz, 8 Gb, 1 Tb, Intel Iris Graphics, но с ним уже ничего не сделаешь
Вторая модель дороже на 5-9к
Няша, если минимак новее 2014, то там нельзя заменить память - можно выбрать увеличенное значение только при заказе более дорогой комплектации.
Палю годноту. При желании можно значительно сэкономить, купив вместо i5 i3, 8 гб оперативки, на материнке, ссд и прочих вещах. Но если есть возможность купить мак мини 2012, то лучше его.
Самый главный нюанс — обязательно 16гб оперативки, иначе браузер+икскод+эмулятор=нонстоп свопы.
> мак мини 2012
> Есть какие-то нюансы в духе "при максимальной загрузке греется и уходит в ребут" и т.д.?
В ребут не уходит, но начинает шуметь так, словно готовится к взлету.
Все же десктоп с нормальным охлаждением был бы лучше.
8 хватит, но 4 уже может не хватать
десктоп - ты имеешь в виду imac? Их, кажется, тоже можно прокачать по оперативке до 16Гб
Я имел в виду обычный десктоп, с хакинтошем если нужна макось.
Анон, какие нюансы при покупке? Там отвязка от appleID, или еще какая-то херня, как с айфонами-"кирпичами"?
Если тебя возьмут джуном, то скорее всего заставят копаться в старых проектах, а не писать новые, поэтому будешь писать на обжективе.
Уже 10 раз отвечали: оба, с упором на обж-с, если в ближайшие пару лет собираешься идти работать.
Т.е. прога работает следующим образом:
Все, что до Alamofire.request(...).responseJSON {...}, затем все, что после, и через несколько секунд ветка кода, которая лежит в этом responceJSON. Как добиться того, чтоб код работал последовательно?
Ты про асинхронность вообще слышал?
>imac mid 2011 с 12Гб оперативы под капотом?
Обязательно замени диск на SSD (самый быстрый который сможешь достать).
Иначе тебя никакие 12gb не спасут от постоянных подтормаживаний.
Старый же. Нет некоторых технологий. Например могут понадобиться какие-нибудь SSSE3 для эмуляции. Плюс есть технологии для ускорения виртуализации в i моделях. Сомневаюсь, что они есть коре два дуо
Сижу на капитане на HDD, не скажу что что-то тормозит. Если на винде при HDD, система не очень отзывчивая, то на OSX как-то пошустрее. Хз, может мое воображение.
Имел опыт работы на
mac mini 16GB (HHD) VS macbook 4GB (эпловский SSD)
Мини постоянно подвисал на открытие файлов/программ и на компиляции (когда данные еще не закэшированны).
В любом случае, поставь хороший ssd - хуже не будет.
>>859939
ХЗ легко ли, но диск можно поменять даже в air (а там даже озу распаяна).
Слегка сложнее, потребуются яблочные отвертки:
https://www.ifixit.com/Guide/Mac+Mini+Late+2012+Hard+Drive+Replacement/11716
> но диск можно поменять даже в air
да иди ты нахуй, там на эти диски цены я ебал, иначе давно б ссд стандартную купил бы и поставил бы
Спрашиваю - анон, какой минимальный конфиг для комфортной работы в Xcode над несильно громоздкими проектами?
Core2Duo - не тащит вообще?
Что лучше - mac mini, imac или macbook pro/air?
Макбук про. Мак мини и эир тормознутое говно, аймак доргой. Но без ссд и 8-16 гигов нет пути!
for (var i = subviews.count - 2; i >= 0; i -= 1)
Но в Swift 3 его выпилили и вместо него изобрели богомерзкий stride:
for i in (subviews.count - 2).stride(through: 0, by: -1)
through - до какого значения должен дойти цикл, включительно. Если вместо него написать to, то будет не включительно. Интуитивно понятно, не так ли? (сарказм).
Ну и до кучи, в случае со stride нужно больше печатать.
Я уже молчу, что ++ и -- посчитали небезопасными и выпилили. Наверно, потому, что некоторые дауны путаются с префиксными и постфиксными операторами. Теперь надо писать += 1 и -= 1. Очень наглядно, по сравнению с ++ и --
> for i in (subviews.count - 2).stride(through: 0, by: -1)
Судя по SO, в swift 3 теперь:
> for i in stride(from: 5, to: -1, by: -1)
> for i in stride(from: 5, through: 0, by: -1)
И это норм, как по мне.
> Теперь надо писать += 1 и -= 1.
Это тоже норм.
> for i in stride(from: 5, to: -1, by: -1)
А, ну да, я же пока в 2.3. Переезд проекта на 3 пока отложил. Но всё равно, лучше буду использоать ..., ..< и reverse если надо.
to и through нихуя не наглядны и их легко случайно спутать
совсем плохо? как раньше люди работали? Много ебли вроде с заменой HD на SSD в imac 2011
Ну чисто потыкать похуй на чем, главное хром не открывать. А полноценно работать потом купишь что то поновей.
> как раньше люди работали?
Раньше было меньше данных, меньше финтифлюшек и при этом все тормозило больше.
Имеется СвифтоМодуль/сдк, в котором нужно вызывать одну единственную функцию, принимающую сплошь стринги да инты. Возможно ли слепить это как приложение для не-иОси? Линь, Винь.
Хотя бы гипотетически.
вопрос 2: если да, где найти человека на такую разовую работу?
Можно ли эффективно работать в xCode из-под виртуалки (VirtualBox, например), или вообще из облачного сервиса, такого как https://www.macincloud.com/ ?????
Кто пробовал подобное, поделитесь впечатлениями
Если эта функция не имеет каких-то особых зависимостей и с открытым кодом, то проще переписать на другой язык. Свифт пока только кое-как портировали на линь и то, очень сильно обрезанно
> Можно ли эффективно работать в xCode из-под виртуалки
Если уж виртуалить, то vmware - она побыстрее работает, чем другие. Но всё равно достаточно геморно. Бывает подвисает всё на пару секунд. Стоит рассматривать только, если совсем нельзя выделить денег на мак
Спасибо, буду думать. А сколько оперативы надо, чтобы на виртуалке не тормозило?
И можно ли с виртуалки потом публиковать приложения в appstore?
Мак возьму при первой возможности, но пока так
Я работал с 8 гигами памяти на физической машине. На работе был мак, а дома использовал только, когда влом было идти на работу
А ну тогда хз. Я не разбирался как устроены swiftmodule. Может другие подскажут
Должно быть да. Если только на него установится последняя мак ось и икскод
Хорошо бы было переустановить систему, тогда точно мусора за прежнем владельцем не останется. Но для этого нужно надежное интернет-подключения
Можно просто переустановить, или обязательно стирать диск перед этим?
Нет, будет дико все тормозить. У меня i5 камень, 8гб памяти, все лагает дико, сейчас хочу хакинтош поставить. Самая проблема в том, что не определяет под виртуалкой система видеокарту, максимально выдает 128мб памяти вне зависимости от карточки твоей.
у меня из апстора скачивает все приложения под виртуалкой, сборка может оси плохая как вариант.
Около месяца так работал. Полный пиздец. Лагает жутко. Но на самом деле, попробовать можно но очень ненадолго, пока мак/хакинтош не заимеешь
Билды компилятора для шинды гуглятся легко.
Алсо, на win 10.1 (или где там подсистема вбунты из коробки) можно и убунтовую версию запускать.
Тебя именно Swift интересует? Ибо для программирования для эппл техники нужна именно макось.
если я хочу утроиться джуном в авось разработку в дальнейшем мне нужно учить обджектив си
Какой тебе обжектив си, когда ты пунктуацию в школе не осилил. Вкатывальщик мамкин.
дальше?
дальше?
Если var asteroid поместить под скобки override func didMoveToView то спрайт на экран выводится, но компилятор ругается что внутри touchesbegan он не знает что такое asteroid. Почему не видит? Что можно сделать чтобы видел? Еще могу переменную var asteroid поместить одновременно и под скобки class GameScene: SKScene { и под скобки override func didMoveToView причем с одним и тем же названием, и он НЕ ругается что имя занято. Почему?
Посаны, я понимаю что тред не об этом. Но может кто навернет годную книженцею по Obj-C? Очень надо разобраться, в рот ебал этот вырвиглазный синтаксис.
Поясните за мобильную разработку под iOS. Интересно ли по сравнению с веб?
Какие перспективы в будущем?
Что будет если все начнут писать на react native и т.п.?
Лок на одну закрытую платформу не смущает?
>Лок на одну закрытую платформу не смущает?
Не все так плохо.
Уже сейчас есть https://flutter.io для кросплатформы UI под android/ios и Xamarin Forms
А через пол годика пойдут первый билды с Kotlin Native - там тоже обещают поддержку iOS.
Да тот же самый веб по большому счёту, особенно учитывая что сейчас вся логика в вебе — буквально сплошные веб-аппы кругом.
Лок на одну платформу и нативные средства разработки для UI приложений — необходимое зло. Хорошую каштомизацию не накрутить, а скорость выполнения оставляет желать лучшего — просто посмотри приложение того же гиттера. Простенькое приложение, с 2ф-мя экранами и чатиком — оно, блядь, лагает на 6S! Со слаком на жсе то же самое хотя в последнее время всё не так плохо. А пердолинга с такими средствами ничуть не меньше — посмотри например отзывы о ксамарине, который на всех платформах работает по-разному и поддержка сама не знает что происходит.
Знаю студию, которая пилит на xamarin вполне успешно, но в основном отзывы о нем отрицательные.
Т.е. натив будет жив еще очень долго и если что можно будет переключиться на кроссплатформу без проблем?
А именно у меня динамическая таблица, изначально я хотел подгружать цену во время загрузки каждой ячейки, а оно сначала загружает все ячейки и только потом вызывает делегат. Я особо делегатами не пользуюсь, но че за хуйня? Почему делегаты не загружаются моментально, как если вызывать функции?
А хотя я в предыдущем окне всё, что мне нужно могу сделать, а в таблице просто подгрузить уже готовый массив с ценами.
Слак на винде тормозит хуже, чем хромог. На маке с ссд ещё хоть как-то работает. Кому нравится это дерьмо?
Кроссплатформы плодятся как грибы. Сегодня одна, завтра другая. А натив всегда есть. Хотя на кроссе сейчас заказов наверно больше, чем на нативе. Надеюсь, они рано или поздно наедятся кроссплатформами и поймут, что это говно
>наедятся кроссплатформами и поймут, что это говно
Няшь, чем же вендор лок лучше кросплатформы?
Да и не одним Xamarin едины, есть есть еще flutter.io от ребят из Google и даже libGDX имеет виджеты для UI.
Это конечно ахуительные истории, но вот не выкинут ли завтра это fslutter в окошко ребятки из гугля - непонятно, как и со всем остальным. Так же тебе уже выше пояснили что кроссплатформа - это банально дефакто низкокачественные продукты, и это не исправить.
Что конкретно ты не понимаешь?
*var myArray = [Int]()
func testFunc(){
var localArrayRef = myArray // Вот тут что надо сделать?
localArrayRef.append(5)
}
testFunc() // теперь myArray[0] == 5
Как не делать копию глобального массива-то?
Есть, кстати, мемы на подобие поста выше?
Если и поставишь, то какой-нибудь 2й, а то и первой версии. Аппле срать хотела на поддержку старых осей
Хуенко, блядь. Не стыдно будет, если ты сам написал хотя бы пару приложений на свифте. А прослушать курс любой дурак может
> апиклиент
Что ты пишешь? Ты нормально можешь объяснить? Что ты понимаешь под универсальностью?
У говна.
После обж-с он очень даже ничего.
Что не так?
Молодец, Оп, ты сделал меня латентным ненавистником этого треда.
мимо ios-лид с овер 10 крупными проектами за спиной
Ты просто старпер не могущий в новые технологии.
Twitter, Slack и еще куча топовых компаний уже давно перешли на swift.
Вот я и говорю, хипстота-евангелисты.
Кек. Свифт - просто синтаксис, API у objc и swift одинаковое. А вот то что свифт сырое говнецо - факт. Сама концепция что в бандле будут библиотеки свифта - ущербна. Для программ с двумя кнопками сойдет, но уже что-то сложное разбитое на несколько бандлов, xpc-сервисов, и фреймворков свифт уже не годится.
Да не только в этом дело.
У меня, например, часть проектов с кроссплатформенными ядрами на крестах и сях (для андройда и ios) - интегрировать это в свифт приходится через жопу, в то время как на обжективе ты просто посреди кода можешь начать ебашить на плюсах.
> Сама концепция что в бандле будут библиотеки свифта - ущербна.
Вообще то на оборот, взять тот же Android - там такая уебишная фрагментация и API и Java (6-8)
Сейчас не одна программа под Andorid не пишется без тонные support-library библиотек.
В этих библиотеках и UI контролы и унифицированное Android API.
А что бы уменьшить размер результирующих бинарников они кучу кода вынесли в так называемое Google Play Services.
По факту GPS это и есть их магази приложений, соответственно многие Android программы даже не запускаются на телефонах без Google Play.
https://medium.com/javascript-scene/why-native-apps-really-are-doomed-native-apps-are-doomed-pt-2-e035b43170e9
Все пацаны расходимся, натив не нужен, все учим Javascript.
Да с удовольтвием, дайте тольк
1) Современный строготипизированный язык как вариант Dart и Kotlin
2) Поддержка многопоточности
3) Нормальную UI модель с виджетами, а не ебанутый DOM
Ну и что бы это все не тормозило
1) Различия между статической и строгой типизацией знаешь?
2) И нахуя она тебе в мобильных приложениях? Целых 2 ядра загрузить? Тебе там кроме асинков в лучшем случае ничего и не надо, а точнее вообще все это решается библиотеками.
>Ну и что бы это все не тормозило
ЖС-ы и прочий шит как раз из-за DOM и тормозят.
>>883543
Ахуительная история. Особенно понравились рассуждения что большинство нативных приложений никем не используются - а стань он вебовыми, ими внезапно начнут пользоваться? Или аппрув в стор во всем виноват?
Тенденция "один код работает везде" - булшит ещё из начала 2000-х, который до сих пор не позволяет делать качественный вещи.
>требуется больше, и в каких вообще задачах.
Ну как, биткоины майнить! ой, ониж на гпу считаются(
Пойду тогда сервер подниму.
> устоявшееся в русской терминологии выражение
Что такое русская терминология? Может быть ты хотел сказать, что в русском переводе подобрано корявое определение, что не отображает сути? С этим я согласен. Впрочем, чтобы ты там не хотел, можешь не продолжать, лучше потеребонькаю libnotify для написания уведомлялки о новых сериях в отслеживаемых торрентах, чем буду спорить с очередным кловуном. Спасибо.
У тебя хуёвый детектор.
>>883677
Суть оно более чем отображает — если осилишь страничку на вики до середины — поймёшь.
А дальше тупые маняврирования как обычно.
>У тебя хуёвый детектор.
Ой ну хватити, не траль больше нахуй ты тогда вообще влез, не к тебе обращались
Да просто влажную маню хотел еблом ткнуть в обосрамс)
Вот я тоже к этому склоняюсь, ибо на своей первой работе пишу именно на нём, хотя обучение начал с Obj-C и у меня сложилось впечатление, что свфит лучше, так как на нём проще написать проект более качественно (без исключений итд). Но так как я не особо опытен, мб, я просто не вижу каких-то подводных камней, которые могут кардинально поменять моё мнение об этом языке.
Минус (он же и плюс) - Swift более высокоуровневый язык и хуже чем ObjC подходит для байтоебства.
А ты давно байти-ки то ебал в мобильных приложениях?
Единственное чего не дает делать свифт в этой области - удобно писать битмаски и итерировать массив по инкременту указателя.
А у Swift есть интеропт с "C"?
Я смогу впиндюристь в Swift класс код на "C", как это делается в Object-C?
Один дурак статическую типизацию со строгой путает инб4: кококо сильной, второй интероп с обратной совместимостью предоставляемой надмножеством. В сишке классы, что блять вообще несет... Что за поехавшие в этом треде...
Интероп с си есть вообще у всего.
ну и зачем мне нужно "впиндюривать" в swift класс код на С, если я могу создать отдельный файл с си кодом и использовать его в swift коде
Что бы ограничивать скоп методов и не размазывая логику по разным файлам.
Сейчас я так понимаю для их вызова надо еще добавлять их в "bridging heade".
>Что бы ограничивать скоп методов и не размазывая логику по разным файлам.
Это проблема только если у тебя 3 функции, иначе это только плюс к навигации по проекту.
>Сейчас я так понимаю для их вызова надо еще добавлять их в "bridging heade"
Который состоит ровно из одной строчки с импортом.
самое лучшее, что я могу тебе предложить - это брать и делать приложения. Никакое обучение не даст тебе практического опыта и хорошего понимания платформы. Если пока ещё не можешь писать под iOS, тогда советую почитать книги от Big Nerd Ranch на английском, это даст тебе неплохую опору для старта. После них можешь смотреть в сторону iOS by tutorials от Ray Wenderlich (или как-то так), там уже собраны обзоры и примеры использования плюшек из разных версий iOS (этот шаг можно дропнуть, если есть мотивашка придумывать программы и писать их). После этого всего выходи в свободное плавание, читай форумы, экспериментируй и всё будет збс
Есть задача которой я себе мозг стер нахуй.
Педалю iOS приложение в котором нужно сделать non-renewing подписку. Вся ахуенность в том что это приложение с Логином представляет из себя чат в котором я анлочу какие-то фичи на 30, 90 или 180 дней для конкретного юзера приложения. AppleID должен использоваться только для того что бы собственно сделать проплату.
Итого, херня которая покоя не дает.
Могу ли я делать проплату под разными юзерами в приложении использую один и тот же AppleID?
И если да, то как они будут отображаться в AppleID и как быть с Restore Purchases?
P.S. Да, сервер уже менеджить подписки и считать Expiration date.
Оба.
Лечится перезагрузкой, но перезагружать, потенциально, перед каждым выходом из дома это ебануться. У кого-нибудь встречалось такое? Как починит?
>В сишке классы, что блять вообще несет...
Ты неправильно прочитал его пост.
>>883543
Этя скриптохипстеры уже не знают, что и придумать. Install friction, блядь, пиздец. ШЕСТЬ КЛИКОВ! 20% ЗА КЛИК, ИТОГО -120% АУДИТОРИИ!!
>Ты неправильно прочитал его пост.
Ну так расшифруй, для меня этот несформированный поток сознания слишком сложен.
>впиндюристь в Swift класс код на "C"
Класс на swift'е, в него нужно вписать код на Си. Что тут непонятного-то? Суть не в его потоке сознания, а порядке слов.
Он будет пиздец долго билдиться на больших проектах, а в текущей реализации инкрементальная компиляция работает через пизду - очень заебывает на один измененный символ ждать билда несколько минут. Недавно я оптимизировал СКОРОСТЬ КОМПИЛЯЦИИ, а не скорость исполнения, прикиньте до чего дошли. Но несмотря на это свифт все равно лучше, обж си уже не развивается, будущего у него нет, только легаси.
Это копия, сохраненная 18 декабря 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.