Вы видите копию треда, сохраненную 19 января 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Полезные ресурсы:
https://www.raywenderlich.com/
https://www.appcoda.com/
https://www.bignerdranch.com/books/ios-programming/
Видео для ленивых:
https://www.udacity.com/courses/ios
https://www.youtube.com/user/AlexSkutarenko
https://developer.apple.com/videos/
[YouTube] Developing iOS 11 Apps with Swift - 1. Introduction to iOS 11, Xcode 9 and Swift 4[РАСКРЫТЬ]
Телега с фрилансерами 300к в секунду: https://telegram.me/joinchat/CUVruD5OrDIaNn5XKwM6Dw
С нуля на русском
С нуля базы рассказывает, дает сложную домашку, но все разжевывает
https://coursehunters.net/course/osnovy-swift-c-nulya
https://coursehunters.net/course/razrabotka-ios-prilozheniya-c-nulya-swift-4-xcode-9-ios-11
Себе отложил это еще
[YouTube] Swift 3 c нуля: UIKit урок 1 - Intro[РАСКРЫТЬ]
Тут чисто осмотр UIKit, но рассказывает бегло, не углубляясь.
Перевод документации базовой
https://swiftbook.ru/content/
Материал на английском:
Очень подробно все рассказывает и расписывает, сейчас ее смотрю, правда я изучил немного, поэтому пролистываю много. Но домашку дает вроде как. Есть сабы, что удобно.
https://rutracker.org/forum/viewtopic.php?t=5445071
Devslopes. Начинал с них, рисуют приложения при тебе, особо не углубляются в детали, но как пример можно посмотреть. Сам к ним вернусь, как побольше поучу.
У самого возникла проблема, тут описал >>1229284
поэтому дропнул пока их.
https://coursehunters.net/course/udemy-ios11-swift4
Еще материал из ОП поста, который много где форсят
https://www.youtube.com/playlist?list=PL9lXw_XXeiWQGrY5dl0IjFI7tOw_nfI91
Без сабов тяжело, сабы хорошие на айпад подкастах нашел, там же и материалы.
Вообще видно что дают хороший годный материал, но чаще сложно приподносят, из-за чего сложно воспринимать если не имел дело вообще с программированием.
last >>1242382 (OP)
А хули и нет бы, ты смотришь общий архив под все платформы или в маркете под свой конкретно?
Мне нужно конвертнуть 01101001010 100101 010 101010100 10101010 это String в FKSR
под мой айфон 22mb, чет все равно много
Хуясе
Чет тоже проиграл. Это работает и похуй)
Никак. Сохраняй модель ячеек в иплементации датасорса
Или Апплу скоро вообще пызда, ксяоми победит, и не имеет смысла бежать?
Как человек, пробовавший питон, скажу так. Есть одна главная общая вещь - концепция модулей. Так же стиль работы с коллекциями сродни - всё стремится к инлайновости. По началу будет непривычно, но если ты открыт к новому, то тебе понравится. Моё мнение, что стоит попробовать.
Да. Самая лучшая мобильная платформа для заработка а уж тем более с опытом на питоне вообще сказка.
Я думаю что со времен SE все летит в пизду, мены вымораживают эти лопатофоны аля андройд, внедрение каких то фич которые уже были у самсунга и выставление это как инноваций, это блять просто смешно. Каждый год зоопарк устройств множится, а революционных и прорывных технологий нет.
Я разочарован в компании последние годы, было лампово когда были 5S и SE. ИМХО!
Между 5s и SE были 6 и 6s не лампово было? :3
http://kelindev.blogspot.com/2018/08/errors-in-wwdc-2018.html
Это ты в школе не сидишь на обж, а программисты макакооси вынуждены прибегать к обж.
Содомит
Т.е. допустим у меня лейбл с секундомером вида mm:ss
Если ориентироваться только на intrinsic size то получается уебански т.к. 11:11 уже чем 99:99, ширина постоянно меняется и из-за этого двигаются другие вьюхи, которые законстрейнены на лейбл. Выглядит уебански.
С другой стороны не хочу задавать констрейнт на фиксированную ширину лейбла чтобы не менять каждый раз, когда поменяю шрифт или текст.
Констрейнты там могут быть не только константы если что, но и больше/меньше чем или равно
Рекомендую моноширинный шрифт:
UIFont.monospacedDigitSystemFont(ofSize: <#T##CGFloat#>, weight: <#T##UIFont.Weight#>)
А вообще
Десятая лекция стенфордского университета по iOS 11 тебе в помощь, там старикан в конце про аутолэйаут распинается в том числе и про то что тебе нужно
Я даже в свифте так делаю, потому шо модули снижают время загрузки апа и лучше импортировать код напрямую.
Пиздец. Джва года в бук сторе валялась целая книга. Но потом её убрали. Может кто нить объяснить почему?
Это сука очень тревожно
https://www.goodreads.com/book/show/22638519-using-swift-with-cocoa-and-objective-c
>валялась целая книга
В телеге по иосу валяется хуева туча книг, даже больше чем у этой конфы. Ало. Люди же находят, значит и ты найдешь.
У меня есть. Вопрос в том поему такую важную книгу убрали из русского стора
Скинь ссылку на группу, попробовал ссылку ту что в шапке для 300к\с, пишет мой линк инвалид.
аноны!
есть смысл перекатиться в иос из быдло-эникей-админства?
блять, ощущение, что за последние пару лет в тему вкатилась куча скутаренко-бойз, они молодые и бойкие.
а я 30+ и в моей мухосрани хуй найдёшь работу.
@ (sobaka) iOSBooks
Да просят меня дауны, которые там находятся. Хотя книги норм кидают, но вот 2к людей в сообществе просто ебанные куколды и чсвшники.
Юзал иос-девайсы, понравилось. Поставил хакинтош, начал курс по свифту - прикольно.
А бэкенд на чём сейчас пишут?
На строке с import FrameworkName пишет, что "No such module 'FrameworkName'". Что я делаю не так?
Так, при сборке не ругается на отсутствие модулей.
Зато теперь миллион ошибок "Use of undeclared type".
Аноны, помогите. Писал полгода в вижаке/gcc в линуксе. Поставил Xcode на macOS. В общем, при вызове scanf происходит какой-то пиздец. На пике все видно (смотрим атпут - нижний правый угол). Что за хуйня?
Сам нашел ответ на свой вопрос. Хотя, как сказать. Нашел тред на форуме эпл, где у ОПа и комментаторов такая же проблема. Оказывается, это баг 10-й версии xcode (сообщение о завершении программы появляется посреди вывода). Фиксится сменой размера шрифта окна вывода. Но это такой себе фикс, ибо шрифт нужно менять вручную при каждом экзекуте - сам он его не сейвит. Собственно, вот тред, можете почитать, кому интересно https://discussions.apple.com/thread/8543709
Пиздец, у меня горит жопа с этого ебучего мак ос и ебучего баганного проприетарного эпловского софта, но зато своё!
Аноны, которые пишут на маке, предложите достойную альтернативу, пожалуйста. Либо скажите, как это пофиксить.
Ггг, пять лет быстро пролетят
>предложите достойную альтернативу,
Жид брейнс. На с никто не пишет, и нахуй мак не нужен для твоих лабок. Если есть лабки то пиши на свифте.
Для линупса бекенд можно уже на свифте писать. А так пишут сейчас на питоне, джаве, си шарпе.
Пишешь на икскоде с автоподсветкой. Запускаешь из директории терминалом с помощью gcc. Да и баг пофиксят. Икс код еще свежий
Есть одно приложение, в котором не работает скролл на половине экрана, то есть только скролл, самое нажатие определяется правильно, можно тапнуть на любой элемент, в зоне где не работает скролл и все ок, или если вызвать какую-нибудь системную функцию где не работает скролл, например выделение текста - и поскроллить ей тоже все ок.
Но проблема не в том, что не работает скролл, а в том, что он не работает только на моем устройстве! На всех других айфонах разных моделях и ios такого нет (в том числе на устройстве где такая же модель+версия ios.) Значит ли это, что это только с моим айфоном проблема? Но как такое возможно, если ни в одном другом приложении ничего подобного я никогда не замечал. Ведь по логике, если есть проблема к примеру с экраном, то она не может же проявлятся только в одном приложении? Пробовал обновлять ios, переустанавливать приложение, не работает и все.
Как это никто не пишет? Все нормальные проекты, типа нейронок и блокчейна в большинстве случаев реализуются на C++/Си/Питон. В основном, это плюсы, конечно же. Но учить плюсы, не разобравшись досконально с Си было бы странным, поэтому хочу сначала по k&r полностью его освоить
Хорошо, буду компилить в gcc через терминал. А почему xcode после компиляции не оставляет ни исполняемого, ни .o файла в папке проекта? Он что ли сразу все в оперативке держит после сборки? Или файлы скрыты? И еще: какой компиль у xcod'а? Свой собственный, как в вижуалке? Или на чем-то основан? Например, на том же gcc
>А почему xcode после компиляции не оставляет ни исполняемого, ни .o файла в папке проекта
Вот тут посмотри свои пути и там уже можешь поискать все, что тебе нужно. Это если что настройки Xcode
Clang
Поискал в хот кеях сам, но не нашел такого. Может я что-то пропустил.
Это хкоде, тут ничего нет
>2пик
>Производительность на уровне Жавы
А чё так плохо? У вас же нативная компиляция, а не виртуалочка.
ctrl + cmd + ' — перейти к следующему issue
ctrl + alt + cmd + f — пофиксить все issue в скопе.
Java код транслируется в байт код, а байт код уже дальше сам идет в машинные инструкции. В андройде, например, есть еще промежуточный этап этого дела.
В свифте только знаю, что главный объект свифта связан с NSObject и что-то там внутри твориться.
Джава норм, и еще всех нас переживет, столько легаси говна, плюс еще и котлин наслаивается.
мимо.
Какой же уебишный кокоподс. Жду 15 минут чтобы подключить три либы блять, просто пиздец. В андройде ебнул и за 10 секунд поставилось, я хуею. Жирный минус в иос телефонах сука.
а, я объебался в одном моменте. все норм. Но кокоаподс все равно уебищный. Gradle, пожалуй, лучшее что создали в этом мире.
>Java код транслируется в байт код, а байт код уже дальше сам идет в машинные инструкции. В андройде, например, есть еще промежуточный этап этого дела.
А в свифт компилируется сразу в машинный код, соответственно должен работать быстрее, ведь в рантайме нет промежуточного этапа перевода в машинные инструкции.
Так почему же производительность на уровне жавы?
>Так почему же производительность на уровне жавы?
Я не замерял скорость, и пикча может пиздеть. Какая разница?
На пике не одинаковая производительность, а одинаковые классы производительност. Это не значит что сфит и ява одинаковые по перфомансу.
Ну и ява уже давно выдрочена и имеет очень высокую производительность. То что она медленная это стереотипы конца девяностых, и в юзер интерфейсе из-за непредсказуемости сборщика могут быть рандомные микрофризы + разогрев JIT что тоже производит впечатление медленности, но сам язык и jvm уже давно ракета.
Хз, как насчет голой производительности языка, но в ios разработке obj-c пока рвет и ебет сфифт как по скорости, так и по размерам бинарников
Не мешки ворочать.
Научился конвертировать в string битов, но как обратно с кодировкой windows нихуя не понятно.
Выбери сцену с контрлером где черный экран в в сториборде, глянь оутлеты, если не привязана view, то из-за этого черный экран.
Проверь чтобы на нужном контроллере была галка is initial controller.
Обычно черный экран когда ни одни контроллер не показывается.
P.s. На 2 пике у тебя нужная стрекла стоит, но я хз это скрин твоей сториборды или белого господина.
хорошо что есть паинт 3дэ
и авторские права после получения ИП блят...
Создаю композицию, инсерчу туда аудио и видео дорожки ассетов, и столкнулся с проблемой, что когда выставляю duration меньший чем у ассета(грубо говоря вставляю видео чтобы он играл 1 секунду, но длинна его 2 секунды) наблюдаю аномалии, обрезанные кусочки видео вылазять в конце экспортированного видео. На этот случай использую костыль выставляя timeRange экспортеру, но нужно решить корень проблемы, так как по ходу дела вылазят и другие косяки. Когда дебажу - все треки вставляются ровно и синхронно, но на итоговом видео из-за обрезок начинается рассинхрон между видео и аудио.
опять вылетел при работе с мультикурсором
Та ясен пень что без скуринов никак
У меня проблема именно со скуринами для больших устройств, симулятор конечно бы выручил но у меня шайтан коробка слабее симулятора...
Конкретнее, что именно в геймцентре? Если что, лидерборды не подойдут. Речь про приватные данные, валюта поинты итд.
Я имел ввиду сами геймсешены. Там полноценный пир-ту пир, который Data передаёт. Была бы возможность, я бы месенджеры делал на нём. Скорость зашибенная, при хорошем интернете, конечно и для реал тайм и для пошаговки. Ну а очки и ледерборды можешь на своём серваке хранить, никто не запрещает.
Ну ебана, попробуй бесплатный тариф на хероку или firebase.
>Redundant conformance constraint
Это еще что за покемон? На офф.форуме писали, что это баг но это не точно, причем записи датировались 2015ым годом.
Анончик, можно по подробнее, год назад релизился в апстор - проблем не было с этим, мож изменилось что?
Сейчас как раньше было только для приложений с подписками: при оформлении понадобятся ссылки на политику и поддержку. Можно не заморачиваться и скопипастить типовую в гуглдоки, там же заебашить форму поддержки с полями почты и сообщения, например
мимошел
>JSON количество коммитов и звезд у всех репозиториев в гитхабе?
Делаешь проект? Давай я с тобой.
>ctrl + cmd + ' — перейти к следующему issue
>ctrl + alt + cmd + f — пофиксить все issue в скопе.
FN + CONTROL + COMMAND + '
FN + CONTROL + OPTION + CMD + F
Надо перебиндить эту хуйню.
>FN + CONTROL + OPTION + CMD + F
Беребилдил на cmd + enter как в андройде. Алсо первое не получилось, ну и хуй с ним. Оно переходит к другим классам и пытается там пофиксить.
Мб надо еще почитать и настроить под_себя.
Обе с i7 и 16gb, но первая за 1700, в вторая за 2300
Стоят 4 ядра против 2 этой разницы или нет?
Ну так гугли отказываются от ведра к 2020 и будут пилить свою пропиетарную парашу.
Это нам (надкушенным) на руку.
Нихуя, я тут тоже есть. Я правда уже года как два вкатился в гейось.
Нет, он работает по-разному. Просто в данном случае выглядит одинакового.
Стоят, но даже не сколько сами ядра, сколько нормальная, неломающаяся от крошек клавиатура, и новое поколение процев.
Поздравляю с покупкой! Сам тоже собираюзь взять, а то 15 год уже немного устаревать начал
>Дроч на цифры
>Разработка под iOS тред
Вот я дурак, надо было THINKPAD брать, и XIAOMI на сдачу
Ну ты и долбоеб, блять.
С и С++ - это два разных языка, буквально.
Программы на них пишутся вообще по-разному.
Начинать С++ с С - это все равно, что начинать программировать под iOS с программирования спектрума, нахуй.
Ты сейчас серьезно? Даже выделение памяти в Си дает более ясное понимание процесса. И так во всем. ООП пошел из структур.
Ты тот же самый долбоеб, или уже другой?
Судя по какой-то букварной хуете, которую ты упоминаешь, тот же.
Так вот, знать что С, что С++ - это, в первую очередь, шарить в их стандартах (ты вообще знаешь об их существовании, открывал их хоть раз?), шарить в идиомах (не на уровне "мам, я терь знаю чо такое РАИИ, я терь дохуя С++ник крутай").
А твои анальные эксперименты с компилятором не дадут ничего, ибо результаты его работы зачастую трактуются новичками, да и не только новичками, отлично от стандарта (т.е. совсем неправильно), что влечет за собой трудноуловимые баги. Ковыряние в ассемблерных листингах тоже не поможет - undefined behavior, не, не слышал?
Держи лайтовый пример того, что тебя ожидает, нюфаня:
https://habr.com/company/infopulse/blog/338812/
>классы из структур
Ты, блять, криворукий нуб ебаный.
Во-первых, в С++ и struct, и union - это те же самые классы прежде чем вскукарекнуть МДА ЛОЛ КЕК КАК ИТА КЛАССЫ, почитай стандарт, долбоеб, во-вторых - все очень сильно зависит от наличия в классе конструкторов, деструкторов, виртуальных функций и операторов.
>выделение памяти в Си
Ну давай, расскажи мне, что ты знаешь о выделении памяти и ее функционировании согласно модели памяти С/С++. malloc/free/new/delete? сразу иди нахуй, нубяра
Пишешь как какая-то школьная порватка, которая выучила чуть больше чем другие макаки и уже бежит обссыкать остальных какие они нубы.
Спец-во-рту-хуец, скажи мне почему человек не может выучить/посмотреть на язык потому что просто хочет?
>Ты, блять, криворукий нуб ебаный.
Во-первых, в С++ и struct, и union - это те же самые классы прежде чем вскукарекнуть МДА ЛОЛ КЕК КАК ИТА КЛАССЫ, почитай стандарт, долбоеб, во-вторых - все очень сильно зависит от наличия в классе конструкторов, деструкторов, виртуальных функций и операторов.
Я об этом и говорил, мол, ООП есть и в СИ, представленный в виде структур. Но полноценным (вернее, удобным для использования) ООП его назвать нельзя.
>malloc/free/new/delete? сразу иди нахуй, нубяра
Значит, я нубяря, т.к. в сущности хотел рассказать про эти функции и различия в их работе.
>Так вот, знать что С, что С++ - это, в первую очередь, шарить в их стандартах (ты вообще знаешь об их существовании, открывал их хоть раз?).
Про стандарты, офк, знаю. Стандарты Си читаю периодически. Хз, на каком я уровне развития, если через полгода ленивого коддинга только начал читать k&r. Самое сложное, что писал - архиватор, который базируется на алгоритме Хаффмана.
Спс, годно
P.S Так ты не согласен с тем тезисом, что и Си перекатиться в плюсы и почти любой другой ЯП будет легче, чем, например, сначала учить плюсы, а затем переходить на Си?
Вью это обертка над леером.
Да тебе же, нубарику, пригорело, найс =)))
Тоже, как он, не шаришь нихуя?
>>289784
>ООП есть и в СИ
ООП нет в С, полудурок. Его можно только эмулировать, шурудя витейблами вручную. Ты вообще не врубился, о чем тебе толкуют (стандарты он читает, блять. Ты должен сам знать об этом, ибо трудно не заметить). В С++ ключевые слова struct и union объявляют КЛАССЫ, долбик, прям как class, да, а не так, как в С. В С классов нет.
>Стандарты Си
Какие стандарты Си-то? О чем ты говоришь? Он один, блять. МИСРА, что ли?
>перекатиться в плюсы и почти любой
После С можно ОХУЕННО ОПТИМИЗИРОВАННЫЙ ГОВНОКОД писать на любом языке, нахуй.
ООП есть в Си. Его можно реализовать стандартными возможностями языка -> он есть. Наследование, инкапсуляция и т.д. Так что полудурок тут только ты.
бляц, я ссылку не просил, рассказал бы успешные или нет, сколько юзеров, какой доход
>В С классов нет.
Никто и не утверждал обратного, аутист. Ты, может, таблеточку выпьешь и по-человечески разговаривать начнёшь, или просто нахуй в /б съебёшь?
Как будто что-что плохое
1. Избегаю констант для размеров изображений, ставлю аспект как в оригинальном изображений и привязываю высоту либо ширину к ширине экрана, например 1:10, чтобы было адаптивно. Это мое джуниоровское предположение об адаптивности.
2.Делаю много связей внутри стека(ну например пять одинаковых по размеру картинок, и одна из них имеет относительный размер к внешним размерам). То есть тмало того что внутри стека константы, они еще завязаны на внешних. Интерфейс билдер не справляется и выдает рандомную рисовку.
3.Как результат нелогичных соотношений соответственно не срабатывают приоритеты hugging и compression resistance
Как можно прокачаться в стеквью по полной, чтобы ну вообще проблем не возникало, или может есть обходной путь, прочитать про верстку адаптивную чтобы реже прибегать к стекам
В любом тьюринг полном языке можно напердолить любую вещь стандартными возможностями языка. В си по дефолту нет ООП конструкций в их современном понимании, а именно их и подразумевают не-аутисты, когда говорят что в языке есть ООП или нет.
Стек вью обладает своей логикой констрейнтов, там нельзя просто так пихать любые констрейнты, вернее можно, но они не будут работать так как вне стеквью. Смотри доку, там все достаточно подробно описано, там многовато, но это снимает любые вопросы.
>Планирую купить месяц курсов у swiftbook, какие подводные камни? стоит того? видел там есть курсы по networking'у, многопоточности. Хочу в этих моментах поднабраться знаний.
Все и так доступно в интернете. Они просто спиздили оттуда информацию и продают.
Решил в слова поиграть, долбоеб?
Тебе с твоим ООП в С различать их нахуй не всралось, дурачок.
>>289883
Плевать на мои санкции, да?
Не нравится - уебывай в /га, пидор.
>>290037
А ООП без классов - для борщехлебов-аутистов с хуйскелем, придурок.
Сам же себе противоречишь.
>>290197
Да, байтодауны -- они смешные.
ООП в С - это еще начало. Видел, как такие долбоебы с нихуя начинают вручную по байтикам экземпляры классов куролесить (в С++), или очень креативно работать с исключениями, например.
чувак со свифтбука не программист ни разу. просто переводит чужие курсы и оф. документацию на русский язык.
прочитал. увы, не сняло ни одного вопроса. в интернете гуляют статьи более исчерпывающие
тебе в /fet
Из тухлого очка твоей мамаши только что свой хуй вытащил, а что?
>ооп без классов
>кукарек
Пердолику-борщехлебу пригорело, найс.
Значит, ты действительно ебанутый долбоеб, как я и предполагал.
Мартышка с познаниями ООП «ну так классы кароч» куда ты лезешь? Пиздуй отсюда и не позорься
Сейчас бы ожидать от сосача нормальных бесед без агрессивных шизиков. hackernews твое спасение.
Ты наркоман?
Нахуя ты со своим энтрилевельным scanf("%d", &a); вкатился в айос-тред, ты сам-то именно, что макака тупорылая и есть.
(Тебя, блять, даже икскод унижает, вангую, очкозавр, на твоей сраке уже можно жарить яичницу, лол.)
Уебывай домой в тред самодельных дилдаков, пирожок.
Там СЖВ, еще хуже.
Какое же ты днище блядь, ты не программист а кусок фекалий который легко заменить джуном с 2 секундами опыта.
>Плевать на мои санкции, да?
>Не нравится - уебывай в /га, пидор.
Не забывай принимать таблетки, шизик.
>>291272
Как мне противно стало от твоих реплик, сразу повеяло запахом пивасика, нестиранных носков, немытого хуя, воняющих спермой ручонок, обсуждения нового ядра, хихикающих японских девочек в аниме, грязных футболок с пингвином, немытой посуды, мусора за монитором, консоли, ухающего митолом сабвуфера, разговоров на linux.org.ru, ноутбуков Lemote Yeeloong, метро, волосатых бомжей в ярких самодельных свитерах, загадочно-дебиловатых улыбок тощих прыщавых студентов на Linux Install Fest, следа от задницы на стуле, аутизма, гомосексуализма, застарелой девственности, плохого здоровья, отсутствия жизненных перспектив и мыслей о суициде.
Обмазываешься несвежим "ООП без классов" - уебывай к хаскель-опердышам, хули ты тут забыл-то, задрот ебаный.
>>291148
Где поиздеваться над сиськатым байтоебищем, если не здесь :3
Так блядь делай зависимость ширины 1 вью от другой. Ты ведь про это?
>Обмазываешься несвежим "ООП без классов"
Ты все никак не успокоишься? Пиздуй работать за плошку риса, пока такие же вкатывальщики твое место у параши станка не заняли
Блять, ты реально какой-то поехавший шизик. Во-первых тебе писало два разных человека, ты даже не можешь осилить две ветки диалога, какое тебе ООП, шизоид?
Во-вторых я сижу где хочу, и в этом треде в том числе т.к пишу на свифте, и нахожусь в этом треде поболее тебя. Между прочим если откинуть такое, периодически залетающее говно, как ты, это один из лучших тредов на двачах. Ты же просто залетный агрессивный шизофреник и съебать лучше тебе.
Ты, пидорас, думаешь, что тут все вкатывальщики, лол.
Иди борща мамкиного наверни, таблеточку прими, заебень пару оперденей на хаскиле, да посмотри, сколько получают "макаки", а сколько - сиськатые лохи-байтодрочеры в своих НИИССУ.
>бабах
Чего ты там пишешь, долбоеб, на свифте, аналог своего сканф хуе-мое принтф хелло ворлд? Людей-то не смеши, задрот.
я оп пары предыдущих тредов, дурень
Шизик, я уже понял что ты гордишься собственной тупостью и невежеством. Главное других не заражай
Всегда интересно, какой типаж у таких ИРЛ, как они общаются, двигаются, выглядят. Просто ИРЛ смотришь на людей, и ни одному не подходит такое амплуа суетливого шизика. А ведь кто-то таки им является.
Потому что у тебя таргет фреймворк стоит, а не приложение? Как ты Фреймворк запускать собрался?
имхо это довольно сложный и бесполезный путь. Но это чисто имхо. Тут нужен только опыт, грабли, грабли и ещё раз грабли
проходи, вкатывайся, располагайся как дома в толпе джуниоров на пару десятков сеньорских вакансий. obj-c пока нужен.
Да я-то, в отличие от тебя, знаю, как работает память, и знаю, например, как писать дрова под винду на твоем крестаче (и под макось на иокит тоже немножк ковырял, но так, чисто праздно).
Тот, кто НИШАРИТ тута - это ты тута, псина, лол.
>>292072
>02:25
>03:26
>называет кого-то суетливым шизиком
Зато я знаю, какой типаж у тебя, НЕСУЕТЛИВЫЙ ты наш крестатый семеныч.
Видишь буковку Y у моего поста и ее отсутствие у чужого? В тебе несколько людей видят шизика. Такова реальность, как бы тебе от этого не было неприятно.
>знаю, как работает память
Ебать ты эксперт братишка, тебе наверное лично Слава Пестов руку жать приезжал, такое редкое знание у тебя есть, элитное.
>эксперт
Задрот, ты хотел сказать? Ну да, есть немножко, сам не без греха.
Ты выучил, как маллок работает?
>В тебе несколько людей видят шизика
Я не удивился бы даже, если вас было бы больше двоих, ибо не различаю вообще вашу некбердобратию.
Пизжу, удивился бы. Всем похуй на этот срач, кроме за каким-то хуем залетевшего крестопетушка с лаба1
>который по уже объявленным параметрам класса инициализирует по этим данным конструктор
struct вместо класса
грабли можно обойти, как и ошибки в архитектуре. я же хочу увидеть в глаза хорошую архитектуру
>Все что можно сделать в структурах, делается спокойно в классах
Положи мне класс на стек, как в крестах.
Мы вам перезвоним.
Знаете, синьор из вас так себе
Конечно можно, живут же люди с дджавой или обжси, как минимум у структур возможна нормальная иммутабельность. Ну и если инициализатор не объявлен будет конструктор с полями структуры. И в памяти они по другому представленных, это может быть плюсом.
>Где она может быть пригодна?
Она делает код проще, нет конечно фломастеры разные и тд. это выбор команды и тд. Как минимум безопасный мультитрединг, но в свифте это достигается копированием стурктур.
Я опираюсь на официальные советы, мне все подходит https://developer.apple.com/documentation/swift/choosing_between_structures_and_classes
>Что блять? Какой стек?
Структуры аллоцируются на стеке, для них не нужен реф коунтинг.
>Пиздец, ты ведь реальная тупая макака. Ты это осознаешь?
Мне еще не нужен был стек в продакшене. Достаточно знать FIFO и все.
>>293544
>мне все подходит https://developer.apple.com/documentation/swift/choosing_between_structures_and_classes
Ок, добавил, почитаю. Спасибо няша.
Ты не понял, мы говорим не о стеке как о структуре. https://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap
>Ты не понял, мы говорим не о стеке как о структуре.
А. знакомая картиночка. А че в крестах можно классы класть? И что, это сильно важно, что у тебя стракт лежит в стеке, а не референс на хип?
>А че в крестах можно классы класть?
Да в сишке структуры, в плюсах классы, когда они выделенны на стеке конечно нельзя было их выносить за пределеы области видимости, но никто не мешал когда закончил с ними работу, скопировать их уже в хип.
> И что, это сильно важно, что у тебя стракт лежит в стеке, а не референс на хип
Да, это может играть большую роль в потребляемой памяти и перформансе, зависит конечно от конкретного места. Скажем так, намного проще вычистить из памяти разом тысячу структур одним махом по окончанию блока, чем ебаланится с рефконутингом, рефканутинг еще ничего, скорее всего компилятор выкупит чо куда, но например в языках с GC (хотя реф коунтинг это тоже гц, но он притворяется что нет) бывает выежикиваются разными способами с тем что бы аллоцировать объекты не на хипе.
>хотя реф коунтинг это тоже гц
не-а. А по существу все верно сказал, только зачем метать бисер перед свиньями? Все равно ж этот ньюфаг нихуя не поймет
>не-а
The Garbage Collection Handbook: The Art of Automatic Memory Management
Table of Contents
Chapter 1 Introduction
Chapter 2 Mark-sweep garbage collection
Chapter 3 Mark-compact garbage collection
Chapter 4 Copying garbage collection
Chapter 5 Reference counting
Chapter 6 Comparing garbage collectors
Chapter 7 Allocation
Chapter 8 Partitioning the heap
Chapter 9 Generational garbage collection
Chapter 10 Other partitioned schemes
Chapter 11 Run-time interface
Chapter 12 Language-specific concerns
Chapter 13 Concurrency preliminaries
Chapter 14 Parallel garbage collection
Chapter 15 Concurrent garbage collection
Chapter 16 Concurrent mark-sweep
Chapter 17 Concurrent copying & compaction
Chapter 18 Concurrent reference counting
Chapter 19 Real-time garbage collection
Ну мало ли, что написали в книжечке Кстати, как книга, читать стоит?. GC работает в runtime, анализируя ссылки и пробегая по графу объектов, в то время как арка — фича компилятора в первую очередь, которая добавляет retain/release в соответсвии с типом ссылки.
Да, но retain/release тоже в рантайме работает. А ведь еще там не сразу как каунтер убирается высвобождение происходит, там по хитрее схема вроде. Я опираюсь на слова инженера джавы (Шипилев) который занимается всякими gc, потому я думаю если он говорит что ref counting это gc, и по смыслу он делает то что и gc, то не вижу причины отделять его. Ну и на книжу опять же Шипилев ссылался, похоже что это довольна фундаментальный материал по теме мемори менжмента.
>А ведь еще там не сразу как каунтер убирается высвобождение происходит, там по хитрее схема вроде.
Ну да, должен сначала цикл авторелиз пула пройти.
Суть в общем-то в том, что GC облегчает компилятор, а ARC наоборот усложняет его. Но GC во время исполнения проверяет связи объектов, запуская определенные процессы анализа и освобождения объектов, в то время как в арке большая часть работы исполняется при компиировании именно там устанавливат релизы/ритейны по связям в графах, а в рантайме уже нет никакого анализа — тупо счетчик плюс/минус там, где надо, различные копирования ссылок и вызов dealloc при обнулении. Если интересно,
https://clang.llvm.org/docs/AutomaticReferenceCounting.html#id55
Стоит ли вкатываться с нуля (имея знания в других языках\средах) сейчас в эту сферу? Сильно ли ниже конкуренция чем в веб и андроид разработке?
Думал вкатиться нормально в nodejs/go и пилить йоба-бэкэнд, но таких макак ещё много миллионов и не ясно как с ними конкурировать.
thinkpad + xiaomi бомж
Ну сам то рыночек специфический. Много стартапов в которые хрен попадёшь. Но в целом работа есть. На крйняк всегда можешь накопить подушку и делать что нибудь в одно рыло, тут бекенд то и может пригодится.
> хрен попадёшь
Чушь полнейшая. 90% предложений о работе - стартапы-однодневки, пилящие очередную соц-сеть или клон любого популярного приложения. Пишут опытным разрабам нонстопам. Им всем нужен опытный сотрудник за дешево.
Ну и я про тоже. Если ты опытный то тебя зовут. А по своему опыту нормального мидла, 50 отказов в такие стартапы.
>Сильно ли ниже конкуренция чем в веб и андроид разработке?
Хуй знает как в вебе. Вкатывался через андройд. На началке только ЗП чуточку различается. После 3-4 опыта у всех поровну в мобилке, что там, что здесь. А если ты еще йоба инженер, который шарит и там и там, то будут платить больше кнчно.
хуясе ебать, я тут в ахуе сижу что в дифолт сити ни джуны ни интерны нах не нужны, а тут у миддл-сениора беда
кто же нужен тогда работодателю?
Не знаю как в других областях но в мобилке такого походу больше всего
Пока ещё нужной, но на горизонте 7-10 лет - уже вопрос.
если у тебя вышка есть и опыт работы по специальности, тогда все плохо
а если ты вкатывальщик, тогда все нормально
плюс еще важен вопрос с локацией где ты находишся, если в дс/дс2 то плохо
а если из мухосрани отклики шлешь, то это норма, никто щас не хочет понаехов брать, тк выбор есть
если ты "бомж", те без денежек, то тут есть реальная проблема с оборудованием
не думай что сможешь обойтись эмуляторами
плюс нужно за лицензию разработчика платить, не думай что без нее сможешь обойтись
а это все денежки которые придется отдавать, те ты сразу в минус уходишь
> не думай что без нее сможешь обойтись
Вообщет нормальная компания покупает корпоративную лицензию. Хотя бывают бомже-стартапы для которых нужно публиковать. Как правило это всякие знакомые-знакомых, которые лезут с предложениями сделать им ап.
Если прокачаюсь, то всегда можно купить мак мини и лицензию, а айфон у знакомого попросить на пару часов, чтобы оттестить на реальном железе.
Глупо сразу покупать макбук про за 2к далларов, чтобы когда-нибудь, может быть, разрабатывать под айось.
К тому же у меня пека на райзене 1700 есть, думаю там эмулятор будет вообще сказочно работать.
> 2019
> у айфонов почти терабайт стораджа, и айпада уже терабайт
> трястись над десятком мегабайт
А вообще, насколько я знаю, они ещё не запилили ABI - application binary interface, но работают над эти. Когда запилят, смогут рантайм свифта хранить в айос и макос, тогда твоё приложение будет весить 1кб
> они ещё не запилили ABI - application binary interface
>Когда запилят, смогут рантайм свифта хранить в айос и макос
Это троллинг тупостью?
Видать эппл обосрались с хкодом 9, когда каждый раз он биндился, что в конечном счете приходилось перезапускать сам хкод. А сейчас мне блять курсором тыкаться в это говно пиздец впадлу.
в сраку свои терабайты засунь, у многих 3G чуть ловит
Он слово stability пропустил, а так все правильно написал.
Ага. Причём куда-то делись предыдущие отклики. У меня там ещё два три листа было, причём иногда шло по 7 отказов подряд.
Бампую вопрос. Хотел разобраться в этих архетиктурах, нашёл тысячи вариантов этого вайпера, даже рамблер свою книжку написал собаку съев. Но от одного анона услышал, что все это не стоит свеч. Где есть вайпер обычно нету тестов, хотя изначально для этого и задумывалось. Если целью является модульность, то при имплементации сложность кода увеличивается в разы при шаге влево-вправо, нестандартное использование сегуев, свои вариации архитектуры(в том же clean swift в туториале описывает одну структуру, а шаблоны уже генерят другую) и прочее прочее. Стоит ли игра свеч и что посоветуете почитать на тему архитектуры? Не про очередной m(x)c, а скорее best practices для mvc
пiсos
Да, можешь. Но есть вероятность что не протестированное на устройстве оно будет падать на неведомой хуйне.
А хкод на виртуалке без всяких эппл ид нормально запустится?
Сори за такие вопросы, просто зная политику эппл, не хочется ставить виртуалку, чтобы потом оказалось, что на ней нихуя без мака и айфона не работает.
>без всяких эппл ид нормально запустится?
Опубликовать ты в любом случае приложение не сможешь.
Запустить тоже нет, тк требуются СЕРТИФИКАТЫ. Но эпплайди ты можешь зарегать как бы без проблем. Денег не просит, пока нет желания публиковать приложение.
хуйня, потом пофиксиш
> Как пока можно прощупать разработку под мак?
Крепко обняв ее всем анусом, слившись воедино в ритмичном танце.
> Хакинтош работает?
Да.
ставишь линь, ставишь свифт, ишешь редактор который подсвечивает свифт, пробуешь
>пробуешь
Вот кстати как бы эппл не говорила, что язык охуеннен, он просто отвратителен в заданиях по вузу. Особенно в работе со строками, чтобы вырезать, поменять, отшлифовать - обязательно ебешься с этим ебучим String.Index. Почему сука на СО уже есть exstensions по работе со строками, более абстрактнее, чем свифт предоставляет это сейчас то блять? На еволюшине есть хотя бы ишью, чтобы пофиксить эти ебаные операции со строками?
Свифт очень слжный язык. Я одно время пытался в питон и свифт одновременно. Сук, свифт забывается мгновенно. Очень много всякой хуйни про него надо помнить.
>Ты просто лошара неосилятор,
АХЪАХАХАХАХААХАХ
Что там, подскажи как вырезать мне первые 5 символов со строчки? А сука? Below - простой сука пример
let str = baseStr[..<baseStr.index(baseStr.startIndex, offsetBy: 6)]
Люди уже сделали удивительные возможности, чтобы облегчить эту ебучую работу со стрингами, пикрил 1 екстеншены, пикрил второй - реализации без мозгоебства.
Иди нахуй, петух. Неосилятор блять. Сложные алгоритмы я на джаве уже реализую, потому что понял, что это пиздец будет в свифте.
И это экстеншены только со стрингами. Представляю как люди в компании, то бессилия набивают руку на этом, а потом создают экстеншены по 1к строчек и перетягивают с проекта на проект, чтобы было ЛЕГЧЕ.
>беграунд из обджектив си и си плюс плюс намного лучше службу служит
Какие-то говноязыки ты перечислил.
Джаваблядок опять не может сделать шага без готовых решений от барина и спотыкается на любом месте, где нужно включить головушку. Хули, привык, что на сервере подкинул диск и можно еще 100500 функций пердолинга со строкой добавить в стандартную либу
Мммм, какие класные экстенжены, особенно класно последние три будут работать с нелатинскими строками.
> Хули, привык, что на сервере подкинул диск и
Какой нахуй сервер? Я с беком вообще не имею никакого дела блять.
Просто нужна другая конструкция головного мозга.
О, давай вместе изучать свифт, а то мне одному скучно.
Ты создал переменную внутри блока, и дальше видимости этого блока она не может быть использована.
Че блять? Пошел нахуй отсюдова.
А линукс нахуя?
Привет, изучаю по вот этой книжке, по одной главе в день прохожу. Какие у тебя идеи по совместному изучению?
Ну, будешь рассказывать до выучил а я буду слушать, хули.
Когда подрастешь мб проекты попилить.
P.S. Ищешь заработок? Заходи сюда: http://xn----7sbbfb7a7aej.xn--p1ai/informatika_09_sim/informatika_materialy_zanytii_09_29_31.html
Ну хуй знает, недавно подогнали ключ на джетбрейнс продукты на год, поставил аппкоде и как-то разочаровался, все кукарекуют насколько он лучше. Я за пару недель пользования заметил только, что у него нет стабильных лагов с подсветкой как у хкоде, самый такой жирный плюс его, в остальном ничем особо не лучше, чего-то даже не хватает
Бля я только недавно разобрался как чинить лаги с подсветкой. У меня десятая бетка. Надо сказать что очень радует покамест. Так вот как работает. У тебя пропадает подсветка в файле. Всё чёрное и ты бесишься. При этом вверху файла у тебя стоит что то типа
import MyModule
import Foundation
делаешь так
// import MyModule
import Foundation
ждёшь 5 секунд
потом обратно
import MyModule
import Foundation
и подсветка включается
Не замечаю убогости хкода. Мне норм. Хотя после жидбрейнса да, непривычно чуток в плане форматирования и ошибок, но терпимо.
Ну хз, я без него уже часто жить не могу, но я работал с rxjava уже года 3, соответственно и на свифте мне норм.
Не понял твоей реакции. Просто rx удобнее других механизмов для асинхронног овыполнения как по мне, нет конечно если тебе не нужно чего-то сложного можно и DispatchQueue бахнуть.
Удобнее писать, а вот поддерживать заебнее, пытаясь через ебовые стектрейсы пробраться. Именно поэтому всякие RxSwift нинужны, пишешь простой сигнал на пару десятков строк и заебись.
Это всего лишь идеома, которая исходит из функционального программирования.
Пажжи в телеге тоже сигнал это тесть?
Не знаю не знаю, их дебаг решается брейкпоинтами/логом после каждого преобразование. Проблемы возникали разве что если непраивльно/не до конца прочитал документацию.
Добавляешь в subscribe onError и логируешь эксепшн в крашлитику, уже что-то есть, заваливщаяся цепочка не респондится, но как минимум не вылет. Ну и есть же тесты, QA.
У меня случались странные вылеты, но проблема была не в интеграции rx.
подрыв неасилятора
Проорал с эплоблядкопроблем.
URLSession вызывает код в бекраунд потоке?
А зачем тогда GCD нужен?
Вообще мне бы анона, который давал бы ответы на такие вопросы.
Какая разница? Выбирай то, что нравится. Вопрос исчерпан.
Продажи смартфонов падают, эпл сдувается, все уже наигрались. Апл стор переполнен всякой фигнёй. Вокруг толпы иос свифт-джунов, а на рынке требуются только сениоры с обж-с.
Проснись, сычь, у тебя подлива мягко стекает из под штанов.
Я знаю человека, который даже твоими манялибами не увлекается, и имеет стабильный доход с одного приложения. + недавно говорил мне, что его хотели купить за лимон, но он отказался. Так что иос разрабы живы, соси хуй.
То, что твой ебарёк поднимает бабло на каком-то там приложении, не аргумент для вката ни разу.
Его - это кого/что? Разраба нанять за лимон или приложение выкупить?
Лимон чего, рублей? Сколько же он зарабатывает в месяц на этой приложухе, $2k? Если так, то негусто - и то, это еще большой успех, которого достигает далеко не каждый.
Предыдущий анон верно заметил, что успехи твоего человечка не говорят о востребованности айос-макак, ведь его навыки лежат не в технической плоскости, ты сам же сказал, что он манялибы не дрочит.
>>301162
>Продажи смартфонов падают
А смысл менять айфоны сейчас, откуда эти продажи возьмутся? Нового ничего в них не появилось. Кроме того, есть огромный вторичный рынок айфонов, про это тоже не стоит забывать.
https://www.jetbrains.com/clion/nextversion/
несезон сейчас или мы больше нет востребованы как 2-3 года назад?
Да вакухи есть, но хороших мало и за малые деньги. Шлака много. Уже мусолили это выше. Рынок сейчас в виде пузыря.
А зачем он? Чтобы сидеть на убунту и прогать ущербно и неудобно на свифт? У IOS разраба всегда есть бабло на мак, не забывай, бро
Ну я просто успокоился тащемта что если граждане Эпл закроют аки ру доменам, то можно хоть куда то мордочку будет уткнуть.
1. Желательно сделать таймер, чтобы запрос шел не после каждого введенного символа, а через полсекунды после введения последнего.
2. Добавить токен запроса, чтобы обрабатывался только калбек последнего, на случай если первый запрос выполнялся дольше последнего.
Где копать инфу про это?
autocomplete search swift гугли
Стандартный
У тебя есть аккаунт на гитхабе? Вот его и требует наверное.
>>303193
Я вообще не иос макака, просто надо кое-что сделать с иос приложением, а джетбрейнс я знаю лучше, чем аппкод ванючий.
>Я вообще не иос макака, просто надо кое-что сделать с иос приложением, а джетбрейнс я знаю лучше, чем аппкод ванючий.
Я тоже не иос макака, и я тоже с жид брейнс знаком лучше. Разница лишь в твоем даунизме.
Не вкатывалщик, пхп макака.
про этот кокоаподс я узнал лишь благодаря аппкоду. Хкод писал непонятную хуйню про ошибки в каких-то конфигах.
>>>>303254
Без Obj-C сейчас никуда
бамп блять
>Obj-C deprecated
Орнул с этого знатока. Когда там стабильное abi завезут уже в свифт? А стандартные либы переписали уже давно поди?
это будет боль
да, если железо совместимо.
на счет выкладывания в маркет только лично я хз, но скорее всего и это тоже будет работать
у меня и у некоторых других двачевов есть какинтош так шо почему собственно ты не можешь себе поставить его на кофеварку хуй знает
Заебал. Сначала в андройд треде, теперь здесь. Пиздуй, мразь.
толька не гаварити что в вашем редакторе поддержка подсов!
есть ли оная для xcode в виде экстеншна
а то уже поднадоело возиться с траблами, я конечно понимаю что сейчас набегут землятебепухом и любительсратьвполе-куны, но иногда удивляюсь траблам при махинации с проектами. то скачаешь проект а тебе твой подс неправильно инсталит потому что версия старая, а в бетке вот трабл пофикшен, все по-разному индексируют проект, и еще всячиские траблы, которые казалось бы уже должны быть пережиты за столько времени. нет, в обычном обиходе все окей, но шаг влево-вправо, приходится капать в дебрях
хз где они чилят, я тут пока вижу кринж нетрудоустроенных
Мимо все еще горю собрать хак и на нем ковыряться в swift
в пидорашке блять че то там работать в иоси, да и вообще хоть веб макакой, нету никакого смысла. ну только если ты не живешь в дсах и тебе не лень прыгать по собеседованиям в поиске нормальной конторы.
ну вот я например работал 4 года иосником мухосрани, думаю тьфу блять, и пошел риелтором работать. хаха, меня тут кормят, дали бесплатное жилье, и за ту же зарплату я работаю в 4 раза меньше. а на свифте пишу щас в качестве хобби.
программирование это переполненный рынок вкатывальщиками, работаешь ты с дебилами ебаными, работаешь с их дебильным кодом. и они же еще и не понимают, что они тупые, ох блять короче мне хуево становится когда я этот треш вспоминаю
Ну что могу сказать. Жаль конечно что из програмача выкатился. Но по-любому так ты прокачиваешься лучше чем работая с эникеями. Желаю тебе вернуться в обойму.
45к пиковая была у этих клоунов
>лидом
Так это, полагаю, еще опаснее для психического здоровья?
Ведь там ты отвечаешь не за свой код, а скорее за табун своих макак, не?
>свой проект
>или в одно рыло делать
Что ты имеешь в виду, в чем разница?
Делать приложения для дядь целиком в одно рыло?
Клоун, когда ты начинал свою карьеру, ты тоже писал дерьмо. И сейчас пишешь дерьмо. Больше пасты, чем своего личного опыта. Пиздуй отсюдова.
>Хочу писать свои апп на свифте, сам бэкенд инженер на скала. Сложно рекламировать свой продукт? Нету мака, только айфон у кореша. Реально поставить хакинтош и тестить с него? Махбук покупать не хочется.
>
мудак чтоли? и так работы нет вы еще со скалы своей лезете
На скале планирую продолжать работать, твои вакансии отнимать, скала бест программинг лангуаге евар. Свифт для своего мини-бизнеса.
я думаю дело не в скале а в фп в целом
я бы и сам съебал из нашей уже не очень уютной помойки туда, только хз куда именно стоит вкатываться.
>>305250
ну тогда слушай сюда
хакинтош как минимум понадобится, как оно там будет работать я честно хз. 99% что все будет работать до момента с публикацией приложения (айтюнс коннект все такое), там возможны подводные. найди себе соседа к которому придешь с дискеткой и скачаешь реферат все опубликуешь
я бы на самом деле забил хер на нативность в твоем случае и глянул на реактнейтив или флюттер. тебе это всяко ближе должно быть, сразу обе платформы и тд.
Добро комрады.
Потихоньку вкатываюсь в Swift и не могу найти точное значение literal, которое описывает само слово.
Да-да, тупой вопрос
>Потихоньку вкатываюсь в Swift и не могу найти точное значение literal, которое описывает само слово.
>
нашел за три секунды
A literal is the source code representation of a value of a type, such as a number or string.
https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html
>A literal is the source code representation of a value of a type, such as a number or string.
Это и я нашел, не знаю тогда как правильно сформулировать вопрос в таком случае.
Но за сам ответ - Спасибо.
Рефлекшн, фп, архитектурные решения. Дженерики типа id. Звучит слегка устаревше.
>> идеальный язык
> обжектив хуйси
> кастрированые женерики
> 2х файлов в проекте
> трудночитаемый
> неподдерживаемый
> неразвивающийся
> скобочки
К чему этот проход в действительно довольно плохонький обжси?
Суть не в торможении, а в предсказуемости. Лучше пусть потеря перформанса будет равномерно размазана, чем внезапно будет проявляться в одной точке времени, на которую пришелся цикл сборщика. Ну и про футпринт используемой памяти не забываем.
Бля, ну я думаю под "писать на swift" он имеет ввиду разрабатывать под apple, а тут ubuntu никак не поможет.
server-side можно и на убунту да.
Я когда вкатывался в офис, я уже 4 года изучал программирование. я начал там в 16 лет, ну и меня затянуло так, что я дрочил это каждый день. Вот тогда я понимал, что пишу говно ебаное и мне нужно учится.
А в офисе долбоеб копипастит классы, и не понимает что он долбоеб, даже если я ему показываю как можно не копипастить, напротив, он мне говорит, что я хуйню ему какую то непонятную и сложную втираю, а тимлид не понимает нихуя кто прав, потому что не шарит в вопросе. Тимлид говорит мол вот разбирайтесь сами, ищите компромиссы.
Я блять понимаю, что я сам не гуру ебаное и не пишу сразу рабочий код в релиз без тестов, но блять что там происходило это пиздец
И в мусорщике и в арке можно было бы предусмотреть их временное отключение, то есть особый скоуп, где для мусорщика объекты не будут попадать в общий список, а для арка бы счетчики ссылок не вкомпиливались. И тогда было бы вообще похуй для перформанса в узких местах.
Но этого нет, по этому лично для меня шо то говно шо это
А так, гц медленнее, но он и делает больше. Арк например не умеет в циклические ссылки, он по моему вроде просто дрочит счетчики жёстких ссылок
>>305345
Запили в дискорде
Арк еще и в сжатие небось не может.
Ебаный сука эпл со своими ебаными материалами, 15 фераля купил новый зарядник, сегодня он стал на 90% юзлес (отвалился магнит и нужно прижимать головку что бы заряжало) и чуть не завалил мак (замыкание и мак в нокауте, но вроде очухался).
Токсичный. Но схуяли называть пидором человека, выступающего за чистоту треда от нафанеобсосов?
> выступающего за чистоту треда от нафанеобсосов?
А зачем тогда придумали данные треды? Сидеть и нихуя не делать? Обсуждать арс или жвм? Или сказать анону, что его вопрос сука в доке расписан?
Наплевательское отношения, ты тоже пидор.
Лучше сидеть и нихуя не делать; лучше позволить треду утонуть чем разводить тут то что происходит в целом в програмаче. Не считая пару тредов c и c++ тут очень вредная конфа.
Сравнил два ебанутых языка с прекрасным свифтом. Иди нахуй.
Помню в юности услышал где-то или прочитал, не помню уже, что больше работы мозг делает во время физической нагрузки. И там же совет был: если программировать одновременно, скажем, приседания делать, то продуктивность возрастает в разы. Попробовал, правда круто. На протяжении последующих лет 5 фрилансил только так. Потом озадачился поработать в настоящей команде. К этому моменту мозг у меня работал только во время приседаний, без них даже под кофе вяловат, но, думал я, команде-то все будет как надо. Приехал на собес, уединился с тимлидом, а у меня не соображает. Даже когда он пальцем в экран безуспешно пытается тыкать. В общем я, чувствуя себя последним кретином, слезаю с стула и начинаю приседать и кодить. Надо отдать должное тимлиду, он не смеялся, просто с интересом наблюдал. Задание я сделал за несколько минут, сел за стул - и снова завис. Ощщем в итоге пришлось просто устно собеседоваться. Именно тогда я осознал, насколько я ебнутый.
Да есть такое. Я люблю ходить по комнате. В офисе тоже сидя за компом чувствую что тупею, так как там не походишь.
ты типо так пытаешься уличить меня в том, что я пасты пишу?
так ты задавай вопросы, если тебя что то конкретное интересует.
жду-недождусь, когда вместо кресел поставят беговые дорожки. можно будет ходить и кодить.
Дальше описание в доках икскода, дальше исходники станлартной либы на гитхабе.
Это начало конца? Или уже не начало?
APPLE ВСЁ
мне кажется тебе пора спать
1. ты хочешь написать a.removeAll(where: a.contains) (оригинальное но бессмысленное опустошения массива
2. ты хочешь написать a.removeAll(where: { $0 == 6 })
Спасибо за ответ, разобрался, и правда не спал почти сутки.
Последний раз кодил под iOS чуть ли не в слепую, на дельфях, в 2015 году. Вопрос: есть на сегодняшний день сборник самых популярных микрозадач уровня "как загрузить фоточку в приложение и добавить на экран" для iOS разрабов?
Когда кодил под андроид - учился по ходу дела читая https://startandroid.ru/ и http://developer.alexanderklimov.ru/android/ прям во время разработки приложения, если есть что-то такое для iOS ньюфагов - буду крайне признателен.
Шапку я просмотрел, похожего ничего не увидел.
inb4 сначала выучи Swift - я реально люблю сразу погрузиться по максимуму в разработку и язык учить параллельно, несколько лет назад я так же учился кодить на джаве и матлабе и это было охуенно, хоть и спотыкался об изобретение велосипедов неоднократно.
В
Мне не конкретно загрузить фотку надо, для конкретных вопросов я на стаковерфлоу найти смогу все ответы думаю. Хочется скорее мини-гайд который в себе будет содержать основы организации iOS и системного API.
чтоб этот пидор из рамблера авито хуем своего папаши подавился, половину рукомунити заразил этой имбицилией
>>307222
гайды на сайте эпла почитай. если скучно то выбери здесь что интереснее и ковыряй
https://github.com/dkhamsing/open-source-ios-apps
>из рамблера авито хуем своего папаши подавился, половину рукомунити заразил этой имбицилией
Что? А как все остальные пишут? Я думал вайпер норм. Сам сижу на клин архитектуре в андройде.
Я думаю это пиздец загрязнять контроллер до 10к строк. Потом хуй пойми что там твориться станет.
подмена понятий
вейпер нигде кроме снг не используют, что уже о чем-то должно говорить
10к контроллер в вейпере грубо говоря разбивается на 3 файла по 4к строк (с оверхедом). что не меняет ситуацию никак. однако авторитетная компания со сцены вещает что это не так. потом они тебе скажут чтобы ты дробил экран на некие "модули". но ты это как бы и в мвс обычном мог бы сделать. и модель толстую ты мог бы сделать в мвс.
а если уж говорить о свифте, где есть наипрекраснейшие функции, с помощью которых мы можем изейше создать одну чистую функцию которая заменит некий "интерактор", и другую чистую функцию которая заменит "презентер", а еще мы можем их скомпоновать в одну, добавить к ней еще третью которая будет кешировать результат, а потом передать только лишь одну получившуюся функцию в контроллер которая будет вызываться по нажатию на кнопку. и это будет всего одна строчка кода в контроллере, которая выглядит как-то так "let someFunc: (Arg1, Arg2) -> (Result<[Entity]>)". разве это не прекрасно? а если мы захотим написать юи тесты то нам даже моки не понадобятся, мы прям в конфигурировании тестов передадим какую-то другую функцию которая просто вернет нужный результат
вайпер должен остаться только в банках где бюджеты неограниченные которые нужно как-то и чем-то обосновывать, в противном случае он всех нас без работы оставит когда заказчики поймут что ну его нахуй эту мобильную разработку, слишком дорого
> если уж говорить о свифте, где есть наипрекраснейшие функции, с помощью которых мы можем изейше создать одну чистую функцию которая заменит некий "интерактор", и другую чистую функцию которая заменит "презентер", а еще мы можем их скомпоновать в одну, добавить к ней еще третью которая будет кешировать результат, а потом передать только лишь одну получившуюся функцию в контроллер которая будет вызываться по нажатию на кнопку. и это будет всего одна строчка кода в контроллере, которая выглядит как-то так "let someFunc: (Arg1, Arg2) -> (Result<[Entity]>)". разве это не прекрасно?
Не понял.
Ты хочешь это куда ебнуть? В repository который будет содержать network requests и дергать оттуда?
майкрософт к слову f# сделал, в джаве лямбды появились, kotlin начали вроде как одновременно со свифтом разрабатывать и языки получились достаточно похожими. как мне кажется такое бывает когда все сталкиваются с одними и теми же проблемами.
>>307449
саму функцию? эта функция может существовать сама по себе в отдельном файлике, единственно раз это замыкание, то сама фунция будет хранится в виде func makeSomeFunc(URLSession или что там нужно будет) -> (Arg1, Arg2) -> (Result<[Entity]>).
там где мы создаем viewController делаем что-то типа viewController.someFunc = makeSomeFunc(URLSession.shared). это может быть координатор например. композиция или декорирование выполняются либо здесь же, либо тоже в какой-нибудь отдельной функции. зависит уже от структуры в целом, будущих изменений и тд
и то это лишь пример. основной мой посыл в том, что не стоит верить всему что говорят. всегда надо думать своей головой. я за последние пару лет около 5-6 человек прособеседовал которые использовали вайпер. 1 работал в банке и его все устраивает, остальные на вопрос будут ли они на новых проектах выбирать вайпер отвечали что нет
и клин архитектура это не про вайпер, и не про vip (clean swift продаватель книжек собственного сочинения). клин архитектура это идея про однонаправленный граф зависимостей в приложении, чтобы в самом низу был домен который не зависит ни от чего, потом шли зависимости приложения которые опираются на домен и дальше по нарастающей.
> граф зависимостей
Да. Сейчас ебусь с лидом, который пришёл с шарпа и про этот граф в помине не слышал. Тут одним предложением сложно донести это правило. Надо пол годика просто попрогать для себя приложушки, и на опыте это познать.
>клин архитектура это идея про однонаправленный граф зависимостей в приложении, чтобы в самом низу был домен который не зависит ни от чего, потом шли зависимости приложения которые опираются на домен и дальше по нарастающей.
В самом низу это бизнес правила. Домен находится на втором уровне, или же это можно назвать use cases.
Ладно, я думал что-то подобное будет в иосе, но вижу все любят костылить. Ок.
Беда всех этих раскладов в том, что они слишком теоретизированы. Поддерживающий этот паттерн в общем то правильно рассуждают, стремясь выделить обобщённый кусок логики, подходящий ко всем проектам. Но они закапываются в теории и зачастую пишут много бессмысленного кода. Умные люди призывают более локально смотреть на проблемы.
Ты мне лучше скажи, как мне передать callback правильно. Не хочу через рх и всякую хуйню делать.
>
чет ты нахуевертил конеш
сигнатура функции будет (name: String, completion: @escaping (City?)->Void)) -> Void
внутри таска где гвард перед ретурном делаешь completion(nil), убираешь var city, в строчке с маппингом делаешь let city = mapping, после completion(city). все ретурны убираешь.
Вариант тащем-то один. В кложур копируешь ссылку на себя. Делаешь её виком. И обращаешься из кложера к ней.
Пизда как сложно. Спасибо за ответ.
А если кнопки две? Еще одну функцию? Где хранить стейт всего говна? Лучше бы кусок кода накидал.
>и это будет всего одна строчка кода в контроллере, которая выглядит как-то так "let someFunc: (Arg1, Arg2) -> (Result<[Entity]>)"
хаха, я тоже к этому пришел. но толи люди - дебилы ебаные и не понимают этого, либо они специально городят говно ебаное, что бы затягивать разработку я хз
>>304870-слав
Что? Зачем? Почему бы не создать repository - где будет происходить банальная связь с сетью, + класс handler Database - для работы с базой данных и все.
Пока я так вижу архитектуру иос.
Да, ты на правильном пути. Но всё же свифт это немного больше про модели нежели чем про ФП. В твоём случае, я не знаю зачем, но можно например вот такую штуку сделать
https://pastebin.com/jzawS4Bw
Чувак писал
> создать одну чистую функцию которая заменит некий "интерактор", и другую чистую функцию которая заменит "презентер", а еще мы можем их скомпоновать в одну, добавить к ней еще третью которая будет кешировать результат, а потом передать только лишь одну получившуюся функцию в контроллер которая будет вызываться по нажатию на кнопку. и это будет всего одна строчка кода в контроллере, которая выглядит как-то так "let someFunc: (Arg1, Arg2) -> (Result<[Entity]>)"
Я это повторил как понял. При чем тут твоя база и сеть для моего примера со счетчиком?
>>307620
Падажжи, мы обсуждали альтернативу вайперу. Вот как ты по методе >>307438 написал бы вьюконтроллер для счетчика в моем примере?
>Вот как ты по методе >>307438 написал бы вьюконтроллер для счетчика в моем примере?
Я бы методу эту не пользовал, но это дело вкуса.
Вот так бы и написал
https://pastebin.com/Mnmtu6HR
Ну так ты теряешь возможность инжектить во вьюконтроллер поведение извне, о чем говорилось в пасте.
да, убрав дублирование и немного упростив будет как-то так
https://pastebin.com/tGrriXmV
но есть нюанс, а именно что у тебя здесь вьюстейт используется, это немного другой паттерн. я имел в виду не внутренний вьюстейт, а внешний, когда мы вместо явной зависимости передаем во вьюконтроллер конкретную функцию берущую/изменяющую какие-то данные нужные только этому вьюконтроллеру.
грубо если в твоем примере State поменяем на какой-то глобальный объект, типа базы, то мы во вью контроллер передадим так же две функции для двух кнопок извне и вью контроллер не будет знать о стейте ничего вообще. надо только учесть что будет обратная связь которую необходимо будет тоже обработать (перерисовать лейбл)
>>307617
все эти ухищрения и лапша из коллбеков в дальнейшем создают DSL внутри координаторов, на котором мы можем описать практически всю бизнес логику приложения. и в тестировании мокать функции проще чем мокать базу данных. и тестировать чистые функции так же проще чем объект Database. ну и будет меньше кода, сущностей, файлов, что тоже вроде как неплохо.
Блять, нихуя не понимаю. Покажи мне нормальную тестовую репу с этим примером. Ваша эта возня с увеличением кнопочки просто пиздец.
>Ну так ты теряешь возможность инжектить во вьюконтроллер поведение извне, о чем говорилось в пасте
Здесь есть глобальные функции, то ест доступная из всего приложения. Это с одной стороны упрощает задачу, с другой усложняет. Я не любитель функций, которые хранят стейт приложения. Их надо по возможности поаккуратней юзать. Базы, хуязы. Я за то чтобы решать всё с помощью Dependency Injection при инициализации объектов, в данном случае контроллера. работы больше, но читаемость когда намного выше.
> var incHandler: Reducer<State>!
> var state = State(number: 0) { didSet { render()
хуйни абстрактной нагородили
там, где действительно только две кнопки с +1 и -1, делайте viewcontroll, где вы делаете просто +1 и просто -1, без лишней хуеты.
берите сразу и отобразите этот тред для примера, то есть реальный пример, так понятнее будет всем. тут сразу и работа с сетью, и с таблицей, и посты можно скрывать и репортить.
Чем это принципиально отличается от MVVM? Функтошизофренией по моде десятилетней выдержки?
Ты не видишь, что набор этих разрозненных хендлеров, призванных решить общую задачу отображения/изменения модели вьюхой, можно объединить во ViewModel?
Можно быо бы и привыкнуть. В ИТ часто так, понтов дохуя, слайды закачаешься, перспективы радужные, а как show me the code слушишь сверчков. Мы живем в не идеальном мире и было бы наивно полагать что красивой математикой, где все идеально, можно было бы выразить программы.
> @discardableResult static func accountProfile() -> ApiRequest<CurrentUser> { return ApiRequest(.get, "account/profile") }
лично я могу тебе только эту хуйню показать, все остальное сырое, да и это тоже на самом деле
https://pastebin.com/zwTU42E1
Ахах. Как увижу это в самом приложении, тогда и можно это поизучать. Сейчас это всплекс уровня /б.
> а как show me the code слушишь сверчков
Постоянно такая инфантильная хуйня. Вскукарекнуть что-то важное и раздувая щеки унестись в закат - это святое. Собственно вайпер и популярен потому, что нашлись люди, которые в рамках этой концепции все расписали и объяснили, а не жмутся по углам при любом неудобном вопросе.
Какие там фишки? Зачем тебе лямбда, если ты можешь передавать в качестве параметра функцию и делать кложуре?
Для этого лямбды то и придумали, чтобы хуйню не городить с анонимными классами.
Хуямбды, блять.
Вам, процедурноблядкам, класс или файлик в проект добавить - все равно, что дом на соседней улице построить - свершение, нахуй.
Хотя на самом деле это ничуть не сложнее, чем кложур, более того, возможности у класса гораздо шире. Вместо того, чтобы разводить, как тараканов, отдельные хендлеры по всему коду (я уж молчу про твои ФАБРИКИ ХЕНДЛЕРОВ), можно было бы просто написать единым блоком класс-делегат именно там, где он непосредственно нужен, внутри кода, от которого он и зависит.
Как-нибудь так:
>var vw = YourViewController(nibName: "ViewController", bundle: nil)
>vw.someDelegate = class: YourViewController.SomeDelegate(... init args) {
> override func inc() { ... }
> override func dec() { ... }
> override var number: Int {
> get { ... }
> }
>}
Это было бы удобно, гибко, читаемо и обозримо, без необходимости вкуривать, что там функтодаун понаквохтал из-под шконаря по всему коду, вот прям сразу.
в эпплофреймворках такие делегаты - обычное дело, все сходится
Писать под иос и не пожрать говна при этом очень сложно(если вообще возможно), потому что в самой стандартной библиотеке куча говна навалено.
Мне кажется стоило бы написать маленькое тз и каждый оппонент написал бы по нему вылизанный код, что-то маленькое на два вечера, а там дальше анонимное голосвание с разбором +/- вот это вот все.
Так бы никто участия не принимал. Нужно минут на 40, идея тащемта хорошая.
И стоит ли изучать обжс?
Только недавно вкатился... Прошёл одну книгу: "Swift для детей". Думаю, что делать дальше...
Мань, ты палишься.
Иксперд скозал, что быдлокодир тока ты лично тут, а вот ты, быдломань, скозал, что всих тут падебил своим говнокодом.
Да ладно тебе, не виляй жопенькой, покажи быдлокодерам как надо писать крутой код.
Ты сам-то хвостом не верти, петушок.
Попустили – беги подмываться, манюня.
Я тебя и так неплохо проконсультировал, а ты даже спасибо не сказал, свинья неблагодарная. Хотя должен мне хуец сосать неделю минимум за это.
И все же, покажи свой гитхаб. А то без портфолио твоего непонятно, имеется ли ценность у твоих советов или ты фантазируешь на ходу.
Шаблонный проект, в котором можно сразу начинать хуярить https://bitbucket.org/2ch-ios-thread/ios-arch/branch/master
Нужно отобразить тред на сосаче (ThreadScreen) и информацию о посте (PostDetailsScreen).
ThreadScreen:
- Показывается изначально после старта аппы, пушится на NavigationController.
- После прогрузки экрана запрашиваются посты через NetworkingService.getPosts(completion:)
- На экране нужно показать список постов в таблице, в каждой ячейке показывается апперкейснутый (это важно) комментарий.
- Ячейка стандартная, ее высота фиксированная стандартная, на лейаут похуй.
- В тайтле экрана показывать дату запроса.
PostDetailsScreen:
- Показывается по тапу на ячейку в ThreadScreen. Презентится, а не пушится.
- Есть кнопка для закрытия экрана.
- После прогрузки экрана запрашиваются детали поста через NetworkingService.getPostDetails(by:completion:)
- На экране нужно показать комментарий, имя и e-mail (тут комментарий не апперкейснутый, это тоже важно).
NetworkingService есть в репе, он максимально простой и небезопасный. Сами же экраны должны быть написаны так, будто они пойдут в прод. Ну и представьте, что там на самом деле больше всего, а не один ссаный запрос и таблица.
Ебашьте тег #arch , чтобы легко потом по тредам собирать было.
И сразу же пример пере-MVP/недо-VIPER https://bitbucket.org/2ch-ios-thread/ios-arch/branch/mvp-viper
#arch
как мне нравятся вот такие "примеры" архитектуры для 2х экранов. Сколько в свое время для ведра пересмотрел, все такие умные пиздец, стройят свои йоба крутые mvp clean solid архитектуры для 2х ! экранов. как будто реальные проекты состоят из двух экранов и со списком и редактированием элемента списка, блять да тут нахуй архитектура не нужна же для такой примитивной хуйни
Битбакет для быдоокодеров, все ровные пацаны сидят на гитхабе?
Поздравляю, ты адекватный разработчик который знает что не надо оверинженерить пока задача того не потребует.
Двачую >>309265 .
Зашел обоссать тебе еблет, а это уже и без меня сделали.
>>309267
Да никогда не надо оверинженирить, БЫДЛОКОДЕР ты тупорылый. Ты на ровном месте умудрился обосраться.
>>309275
>пиздеть горазды
"Мужик должен", ага. Пройди нахуй, чмошник.
Прям так все и кинулись тебе чего-то доказывать, пидор, ага.
Ты еще унылее пример могла придумать, задротина?
>>309165
Классиков программной инженерии читай, долбоеб, чтобы не быть таким неучем криворуким, каким ты сейчас являешься.
Буча там, Фаулера, Брукса, и т.д.
(Автор этого поста был забанен. Помянем.)
Это конкурс для тех, кто хочет померяться. Ясен хуй, нужно быть готовым объяснить как это все масштабируется при увеличении количества состояний, юзер экшенов и всего такого.
Не можешь показать код - проходи мимо, это не мануал "Как надо писать", а задание, чтобы проиллюстрировать свой подход.
У тебя же простыня эмоций, нихуя полезного. Ни конкретных вопросов, ни конкретных предложений.
Та это щитпостер, я ему на голову нассал и его забанили. Не известно, способен ли он писать под иос, или он просто по треда прыгает, оперируя поверхностными общими знаниями
Мань, так ты к какому году в айти собираешься вкатиться? К 2025?
Кстати, появление этого моего поста означает, что модер тебя наебал. Зря ты только ему отсасывал за бан меня, дурачок.
(Автор этого поста был забанен. Помянем.)
>Ну и представьте, что там на самом деле больше всего, а не один ссаный запрос и таблица.
слишком размытая формулировка.
https://bitbucket.org/2ch-ios-thread/ios-arch/src/2b73c158a967d3ced468e6966e088f06776a85e1/ArchTest/Screens/PostDetailsScreen/PostDetailsPresenter.swift?at=mvp-viper&fileviewer=file-view-default
тут нет обработки сетевых ошибок, нет какой то индикации загрузки.
PostDetailsPresenterInput - там допустим форма ввода нового поста будет так же закрываться. а если там будет хитровыебнутая анимация анимаций закрытия, что у тебя подразумевается копипаст простыни кода?
> func numberOfSections(in tableView: UITableView) -> Int { return 1 }
а если там в таблицу надо будет вкорячивать рекламу например сверху(ну вот я пидор и хочу рекламу), а снизу форму ввода нового поста.
tableView.reloadData() - а если нужны будут анимации.
> self.textLabel.text = state.text
а как же парсер?
и так далее короче. у меня нет цели доебаться до тебя, просто раз уж ты все равно уже выложил пример. цель то показывать новичкам, но нахуя им видеть кальки статей для новичков? у них когда возникает вопросы про архитектуру, они уже и так должны знать как вывести таблицу и сделать запрос на сервер.
и что это, конкурс? человеку будет какой то смысл потеть над качеством и продуманностью, или можно сделать на отъебись, лишь бы было?
>>309585
>появление этого моего поста означает, что модер тебя наебал
любой дурачек может обойти бан. вся суть в выкуривании долбоебов из тредов в том, что тебя будут банить пока тебе не надоест обходить баны.
Короче говоря, специальная олимпиада для занудливых задротов. В айос-тредике таких отродясь не бывало. Видимо, Swift уже не такой элитно-хипстерский, и запах несвежих носков, конпеляция ведра, нудные холивары по поводу не интересной вменяемым людям хуеты, аутирование перед экраном по ночам и прочие развлечения ущербных ботанов потихонечку протекают даже сюда. Очень жаль.
> тут нет обработки сетевых ошибок, нет какой то индикации загрузки.
Добавляем в стейт isLoading
struct State {
let isLoading: Bool
let errorText: String?
let name: String
let email: String
let text: String
}
Во вью меняем render(state:) так, чтобы отрисовывало лоадер, если isLoading = true, прятало - если false.
В презентере перед началом запроса вызываем view?.render(state: state), в стейте isLoading = true. При получении ответа то же самое с isLoading = false.
Если пришла ошибка, то в стейте, передаваемом в render(state:) в errorText будет ее текст, вьюха все рисует согласно этому стейту.
> PostDetailsPresenterInput - там допустим форма ввода нового поста будет так же закрываться. а если там будет хитровыебнутая анимация анимаций закрытия, что у тебя подразумевается копипаст простыни кода?
Если правильно тебя понял, вопрос про дублирование кода презента/дисмисса вьюконтроллера. В таком случае создается отдельный класс-аниматор со всей сложной логикой анимации и используется в одну строчку в нужных роутерах.
> а если там в таблицу надо будет вкорячивать рекламу например сверху(ну вот я пидор и хочу рекламу), а снизу форму ввода нового поста.
tableView.reloadData() - а если нужны будут анимации.
Меняем State во вьюконтроллере https://pastebin.com/XcHHARjT Соответственно и render(state:) с cellForRow редактим. Вся суть в том, чтобы вьюшка сама себя отрисовала согласно этому стейту, больше ей нихуя не нужно.
Если нужны анимации, то имеет смысл поюзать https://github.com/onmyway133/DeepDiff чтобы вычислить дифф. Во вьюконтроллере хранить самый последний отрендеренный стейт, чтобы этот дифф можно было вычилсить. Имея дифф на руках, можно поюзать insertRows(at:with:) в таблице.
> а как же парсер?
Что за парсер? Если ты про требование, чтобы коммент был апперкейснутым, то это делается в презентере. Я чуть выше писал, что вьюшка просто сама себя рендерит и даже за форматирование не отвечает.
> цель то показывать новичкам
Нет, я задумывал это для сравнения всяких вайперов/мвп/мвц/редаксов и прочего, это не мануал для новичков "как надо".
> и что это, конкурс? человеку будет какой то смысл потеть над качеством и продуманностью, или можно сделать на отъебись, лишь бы было?
В идеале в примере отобразить коровые концепции используемой архитектуры. В моем случае это дата дривен вьюшка и тестируемый презентер, добиваюсь я этого через недо-вайпер/пере-мвп. Вот у тебя был хороший вопрос про анимации таблицы, надеюсь прояснил.
>>309594
Ты уже вытекаешь. Это то, что люди на работе делают каждый день.
> тут нет обработки сетевых ошибок, нет какой то индикации загрузки.
Добавляем в стейт isLoading
struct State {
let isLoading: Bool
let errorText: String?
let name: String
let email: String
let text: String
}
Во вью меняем render(state:) так, чтобы отрисовывало лоадер, если isLoading = true, прятало - если false.
В презентере перед началом запроса вызываем view?.render(state: state), в стейте isLoading = true. При получении ответа то же самое с isLoading = false.
Если пришла ошибка, то в стейте, передаваемом в render(state:) в errorText будет ее текст, вьюха все рисует согласно этому стейту.
> PostDetailsPresenterInput - там допустим форма ввода нового поста будет так же закрываться. а если там будет хитровыебнутая анимация анимаций закрытия, что у тебя подразумевается копипаст простыни кода?
Если правильно тебя понял, вопрос про дублирование кода презента/дисмисса вьюконтроллера. В таком случае создается отдельный класс-аниматор со всей сложной логикой анимации и используется в одну строчку в нужных роутерах.
> а если там в таблицу надо будет вкорячивать рекламу например сверху(ну вот я пидор и хочу рекламу), а снизу форму ввода нового поста.
tableView.reloadData() - а если нужны будут анимации.
Меняем State во вьюконтроллере https://pastebin.com/XcHHARjT Соответственно и render(state:) с cellForRow редактим. Вся суть в том, чтобы вьюшка сама себя отрисовала согласно этому стейту, больше ей нихуя не нужно.
Если нужны анимации, то имеет смысл поюзать https://github.com/onmyway133/DeepDiff чтобы вычислить дифф. Во вьюконтроллере хранить самый последний отрендеренный стейт, чтобы этот дифф можно было вычилсить. Имея дифф на руках, можно поюзать insertRows(at:with:) в таблице.
> а как же парсер?
Что за парсер? Если ты про требование, чтобы коммент был апперкейснутым, то это делается в презентере. Я чуть выше писал, что вьюшка просто сама себя рендерит и даже за форматирование не отвечает.
> цель то показывать новичкам
Нет, я задумывал это для сравнения всяких вайперов/мвп/мвц/редаксов и прочего, это не мануал для новичков "как надо".
> и что это, конкурс? человеку будет какой то смысл потеть над качеством и продуманностью, или можно сделать на отъебись, лишь бы было?
В идеале в примере отобразить коровые концепции используемой архитектуры. В моем случае это дата дривен вьюшка и тестируемый презентер, добиваюсь я этого через недо-вайпер/пере-мвп. Вот у тебя был хороший вопрос про анимации таблицы, надеюсь прояснил.
>>309594
Ты уже вытекаешь. Это то, что люди на работе делают каждый день.
>у них когда возникает вопросы про архитектуру
У меня возникает вопрос про архитектуру, но я не так много знаю в иосе. За день мб смогу туду лист сделать
В андройде легче - там ебнул clean architecture и все. Здесь - не понятки. Склоняюсь на первых вариантах маппинга данных + использование синглтона как нетворкинга. Т
>на работе делают каждый день
Соревнование по написанию хелловорлдов, такая себе работа, на самом деле.
>>309750
>>309751
Что, он тебя опять сегодня отхлестал по щекам своим длинным контроллером за то, что ты БЫДЛОКОДЕР ЕБАНЫЙ? Надо было еще в угол поставить куковать, пока все паттерны не выучишь.
>>309588
Меня не банил никто, петушок ты глупенький подшконарный. Вон же и посты мои на месте.
(Автор этого поста был забанен. Помянем.)
Мне даже нечинает нравится что ты скатываешь иос тред в ебаное дно. Туда ему тащем-то и дорога. Бы бы я маленько таким же токсичным как ты, я бы тебе помог. Ну а так буду просто наслаждаться результатами твоей работы. Продолжай пожалуйста.
Иди-ка ты нахуй со своей токсичностью
https://habr.com/post/432700/
И да, дружок, айос-треды пустуют, наверное, больше года уже, так что скатывать нечего, собственно. Почитай хоть пару предыдущих, там пиздец. А теперь вот, цыпа моя, агрящиеся на толстоту малолетние дурачки вроде тебя понабежали, хоть порофлю))))0
> второй пик
> Есть Perl
> Есть язык, у которого минимум три совершенно разных интерпретатора
> Нет PHP
> Нет C#
Ясно
Что думаете на этот счет?
Файрбейс очень крутой. Там есть все права доступа, и так далее итп.
Куда все свалили отсюда, в телеграм?
Насколько я понял, там опять эта веб-HTML-CSS-хуерга.
Лучше более-менее вменяемые киты отдельно под каждую платформу, чем хтмл5-пердолинг подо все.
И вообще, не пойму, чему вы радуетесь.
Это как фуллстек: за две-три роли платят, как за одну.
Ну что, как там олимпиада быдлокодеров-лошков?
Ты все еще подебитель спустя неделю?
А вот тут еще один патырн тебе в ботанскую копилочку, пикрил.
>Насколько я понял, там опять эта веб-HTML-CSS-хуерга.
Нет, читай внимательно про флаттер или на худой конец RN. Вы тут без работы остаться можете, включая меня вкатывальщика.
Вы видите копию треда, сохраненную 19 января 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.