Материал на английском: Очень подробно все рассказывает и расписывает, сейчас ее смотрю, правда я изучил немного, поэтому пролистываю много. Но домашку дает вроде как. Есть сабы, что удобно. 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 Без сабов тяжело, сабы хорошие на айпад подкастах нашел, там же и материалы. Вообще видно что дают хороший годный материал, но чаще сложно приподносят, из-за чего сложно воспринимать если не имел дело вообще с программированием.
>>1281081 Как человек, пробовавший питон, скажу так. Есть одна главная общая вещь - концепция модулей. Так же стиль работы с коллекциями сродни - всё стремится к инлайновости. По началу будет непривычно, но если ты открыт к новому, то тебе понравится. Моё мнение, что стоит попробовать.
>>1281081 Я думаю что со времен SE все летит в пизду, мены вымораживают эти лопатофоны аля андройд, внедрение каких то фич которые уже были у самсунга и выставление это как инноваций, это блять просто смешно. Каждый год зоопарк устройств множится, а революционных и прорывных технологий нет.
Я разочарован в компании последние годы, было лампово когда были 5S и SE. ИМХО!
Как можно указать ширину лейбла в зависимости от текста, и зафиксировать, чтобы она потом не менялась? Желательно в сториборде. Т.е. допустим у меня лейбл с секундомером вида mm:ss Если ориентироваться только на intrinsic size то получается уебански т.к. 11:11 уже чем 99:99, ширина постоянно меняется и из-за этого двигаются другие вьюхи, которые законстрейнены на лейбл. Выглядит уебански.
С другой стороны не хочу задавать констрейнт на фиксированную ширину лейбла чтобы не менять каждый раз, когда поменяю шрифт или текст.
>>1281586 А вообще Десятая лекция стенфордского университета по iOS 11 тебе в помощь, там старикан в конце про аутолэйаут распинается в том числе и про то что тебе нужно
>>1279094 (OP) аноны! есть смысл перекатиться в иос из быдло-эникей-админства? блять, ощущение, что за последние пару лет в тему вкатилась куча скутаренко-бойз, они молодые и бойкие. а я 30+ и в моей мухосрани хуй найдёшь работу.
>>1284004 @ (sobaka) iOSBooks Да просят меня дауны, которые там находятся. Хотя книги норм кидают, но вот 2к людей в сообществе просто ебанные куколды и чсвшники.
Дублирую вопрос из С лэнг-треда. Вы же разбираетесь в Xcode. Аноны, помогите. Писал полгода в вижаке/gcc в линуксе. Поставил Xcode на macOS. В общем, при вызове scanf происходит какой-то пиздец. На пике все видно (смотрим атпут - нижний правый угол). Что за хуйня?
>>1284068 Сам нашел ответ на свой вопрос. Хотя, как сказать. Нашел тред на форуме эпл, где у ОПа и комментаторов такая же проблема. Оказывается, это баг 10-й версии xcode (сообщение о завершении программы появляется посреди вывода). Фиксится сменой размера шрифта окна вывода. Но это такой себе фикс, ибо шрифт нужно менять вручную при каждом экзекуте - сам он его не сейвит. Собственно, вот тред, можете почитать, кому интересно https://discussions.apple.com/thread/8543709 Пиздец, у меня горит жопа с этого ебучего мак ос и ебучего баганного проприетарного эпловского софта, но зато своё! Аноны, которые пишут на маке, предложите достойную альтернативу, пожалуйста. Либо скажите, как это пофиксить.
>>1284102 >предложите достойную альтернативу, Жид брейнс. На с никто не пишет, и нахуй мак не нужен для твоих лабок. Если есть лабки то пиши на свифте.
Аноны, помоги понять проблему: Есть одно приложение, в котором не работает скролл на половине экрана, то есть только скролл, самое нажатие определяется правильно, можно тапнуть на любой элемент, в зоне где не работает скролл и все ок, или если вызвать какую-нибудь системную функцию где не работает скролл, например выделение текста - и поскроллить ей тоже все ок. Но проблема не в том, что не работает скролл, а в том, что он не работает только на моем устройстве! На всех других айфонах разных моделях и ios такого нет (в том числе на устройстве где такая же модель+версия ios.) Значит ли это, что это только с моим айфоном проблема? Но как такое возможно, если ни в одном другом приложении ничего подобного я никогда не замечал. Ведь по логике, если есть проблема к примеру с экраном, то она не может же проявлятся только в одном приложении? Пробовал обновлять ios, переустанавливать приложение, не работает и все.
>>1284114 Как это никто не пишет? Все нормальные проекты, типа нейронок и блокчейна в большинстве случаев реализуются на C++/Си/Питон. В основном, это плюсы, конечно же. Но учить плюсы, не разобравшись досконально с Си было бы странным, поэтому хочу сначала по k&r полностью его освоить
>>1284154 Хорошо, буду компилить в gcc через терминал. А почему xcode после компиляции не оставляет ни исполняемого, ни .o файла в папке проекта? Он что ли сразу все в оперативке держит после сборки? Или файлы скрыты? И еще: какой компиль у xcod'а? Свой собственный, как в вижуалке? Или на чем-то основан? Например, на том же gcc
>>1284258 >А почему xcode после компиляции не оставляет ни исполняемого, ни .o файла в папке проекта Вот тут посмотри свои пути и там уже можешь поискать все, что тебе нужно. Это если что настройки Xcode
Есть какой-нибудь хот кей, который позволяет так же как и в жид брейнс на command + return вызывать меню подсказок и имплементить это все быстро? А то так приходится подводить указатель и жмякать самостоятельно на кнопку фикс, это так нудно и долго, прям раздражает.
Поискал в хот кеях сам, но не нашел такого. Может я что-то пропустил.
>>1284959 Java код транслируется в байт код, а байт код уже дальше сам идет в машинные инструкции. В андройде, например, есть еще промежуточный этап этого дела.
В свифте только знаю, что главный объект свифта связан с NSObject и что-то там внутри твориться.
Джава норм, и еще всех нас переживет, столько легаси говна, плюс еще и котлин наслаивается.
>>1284955 Какой же уебишный кокоподс. Жду 15 минут чтобы подключить три либы блять, просто пиздец. В андройде ебнул и за 10 секунд поставилось, я хуею. Жирный минус в иос телефонах сука.
>>1284961 >Java код транслируется в байт код, а байт код уже дальше сам идет в машинные инструкции. В андройде, например, есть еще промежуточный этап этого дела. А в свифт компилируется сразу в машинный код, соответственно должен работать быстрее, ведь в рантайме нет промежуточного этапа перевода в машинные инструкции. Так почему же производительность на уровне жавы?
>>1285170 На пике не одинаковая производительность, а одинаковые классы производительност. Это не значит что сфит и ява одинаковые по перфомансу. Ну и ява уже давно выдрочена и имеет очень высокую производительность. То что она медленная это стереотипы конца девяностых, и в юзер интерфейсе из-за непредсказуемости сборщика могут быть рандомные микрофризы + разогрев JIT что тоже производит впечатление медленности, но сам язык и jvm уже давно ракета.
Хз, как насчет голой производительности языка, но в ios разработке obj-c пока рвет и ебет сфифт как по скорости, так и по размерам бинарников
Нужно кодировать в UInt8 кроме латинских букв, еще и русские. Но проблема в том, что русские занимают 2 байта, а нормальные латинские один. В каком направлении копать, чтобы детектить русские и как-нибудь конвертнуть из Uint16 в UInt8 ?
Кто нибудь уже публиковался в app store? Нах нужна политика приватности если моя аппа вообще ничего не требует, мне надо теперь для этой хни отдельный сайт пилить или у эппла есть что то стандартное наподобие Apple's Standard License Agreement только про приватность?
>>1286217 >>1286224 Действитеьно, эпол хочет, чтобы все юзеры могли посмотреть, как на их девайсе будет выглядеть аппа, да еще и чтобы в случае чего было куда обращаться! Вот пидоры-то!
Здарова грешники. Вопрос тем, кто работал с AVFoundation. Создаю композицию, инсерчу туда аудио и видео дорожки ассетов, и столкнулся с проблемой, что когда выставляю duration меньший чем у ассета(грубо говоря вставляю видео чтобы он играл 1 секунду, но длинна его 2 секунды) наблюдаю аномалии, обрезанные кусочки видео вылазять в конце экспортированного видео. На этот случай использую костыль выставляя timeRange экспортеру, но нужно решить корень проблемы, так как по ходу дела вылазят и другие косяки. Когда дебажу - все треки вставляются ровно и синхронно, но на итоговом видео из-за обрезок начинается рассинхрон между видео и аудио.
>>1286287 Та ясен пень что без скуринов никак У меня проблема именно со скуринами для больших устройств, симулятор конечно бы выручил но у меня шайтан коробка слабее симулятора...
>>1287265 Я имел ввиду сами геймсешены. Там полноценный пир-ту пир, который Data передаёт. Была бы возможность, я бы месенджеры делал на нём. Скорость зашибенная, при хорошем интернете, конечно и для реал тайм и для пошаговки. Ну а очки и ледерборды можешь на своём серваке хранить, никто не запрещает.
>>1279094 (OP) >Redundant conformance constraint Это еще что за покемон? На офф.форуме писали, что это баг но это не точно, причем записи датировались 2015ым годом.
>>1288823 Сейчас как раньше было только для приложений с подписками: при оформлении понадобятся ссылки на политику и поддержку. Можно не заморачиваться и скопипастить типовую в гуглдоки, там же заебашить форму поддержки с полями почты и сообщения, например мимошел
>>1284253 Ну ты и долбоеб, блять. С и С++ - это два разных языка, буквально. Программы на них пишутся вообще по-разному. Начинать С++ с С - это все равно, что начинать программировать под iOS с программирования спектрума, нахуй.
>>1289510 Ты тот же самый долбоеб, или уже другой? Судя по какой-то букварной хуете, которую ты упоминаешь, тот же.
Так вот, знать что С, что С++ - это, в первую очередь, шарить в их стандартах (ты вообще знаешь об их существовании, открывал их хоть раз?), шарить в идиомах (не на уровне "мам, я терь знаю чо такое РАИИ, я терь дохуя С++ник крутай").
А твои анальные эксперименты с компилятором не дадут ничего, ибо результаты его работы зачастую трактуются новичками, да и не только новичками, отлично от стандарта (т.е. совсем неправильно), что влечет за собой трудноуловимые баги. Ковыряние в ассемблерных листингах тоже не поможет - undefined behavior, не, не слышал? Держи лайтовый пример того, что тебя ожидает, нюфаня: https://habr.com/company/infopulse/blog/338812/
>классы из структур Ты, блять, криворукий нуб ебаный. Во-первых, в С++ и struct, и union - это те же самые классы прежде чем вскукарекнуть МДА ЛОЛ КЕК КАК ИТА КЛАССЫ, почитай стандарт, долбоеб, во-вторых - все очень сильно зависит от наличия в классе конструкторов, деструкторов, виртуальных функций и операторов.
>выделение памяти в Си Ну давай, расскажи мне, что ты знаешь о выделении памяти и ее функционировании согласно модели памяти С/С++. malloc/free/new/delete? сразу иди нахуй, нубяра
>>1289606 >Ты, блять, криворукий нуб ебаный. Во-первых, в С++ и struct, и union - это те же самые классы прежде чем вскукарекнуть МДА ЛОЛ КЕК КАК ИТА КЛАССЫ, почитай стандарт, долбоеб, во-вторых - все очень сильно зависит от наличия в классе конструкторов, деструкторов, виртуальных функций и операторов. Я об этом и говорил, мол, ООП есть и в СИ, представленный в виде структур. Но полноценным (вернее, удобным для использования) ООП его назвать нельзя. >malloc/free/new/delete? сразу иди нахуй, нубяра Значит, я нубяря, т.к. в сущности хотел рассказать про эти функции и различия в их работе. >Так вот, знать что С, что С++ - это, в первую очередь, шарить в их стандартах (ты вообще знаешь об их существовании, открывал их хоть раз?). Про стандарты, офк, знаю. Стандарты Си читаю периодически. Хз, на каком я уровне развития, если через полгода ленивого коддинга только начал читать k&r. Самое сложное, что писал - архиватор, который базируется на алгоритме Хаффмана. >https://habr.com/company/infopulse/blog/338812/ Спс, годно P.S Так ты не согласен с тем тезисом, что и Си перекатиться в плюсы и почти любой другой ЯП будет легче, чем, например, сначала учить плюсы, а затем переходить на Си?
>>1289645 Да тебе же, нубарику, пригорело, найс =))) Тоже, как он, не шаришь нихуя?
>>1289784 >ООП есть и в СИ ООП нет в С, полудурок. Его можно только эмулировать, шурудя витейблами вручную. Ты вообще не врубился, о чем тебе толкуют (стандарты он читает, блять. Ты должен сам знать об этом, ибо трудно не заметить). В С++ ключевые слова struct и union объявляют КЛАССЫ, долбик, прям как class, да, а не так, как в С. В С классов нет. >Стандарты Си Какие стандарты Си-то? О чем ты говоришь? Он один, блять. МИСРА, что ли? >перекатиться в плюсы и почти любой После С можно ОХУЕННО ОПТИМИЗИРОВАННЫЙ ГОВНОКОД писать на любом языке, нахуй.
>>1289861 ООП есть в Си. Его можно реализовать стандартными возможностями языка -> он есть. Наследование, инкапсуляция и т.д. Так что полудурок тут только ты.
>>1289861 >В С классов нет. Никто и не утверждал обратного, аутист. Ты, может, таблеточку выпьешь и по-человечески разговаривать начнёшь, или просто нахуй в /б съебёшь?
В тред призывается ультимейт-гайд по автолайауту для X-периенсед девелоперов. Перечитал тонны информации про стеквью, и до сих пор испытываю сложности с версткой. Не могу понять на чем я все время спотыкаюсь, вот пару подозрений: 1. Избегаю констант для размеров изображений, ставлю аспект как в оригинальном изображений и привязываю высоту либо ширину к ширине экрана, например 1:10, чтобы было адаптивно. Это мое джуниоровское предположение об адаптивности. 2.Делаю много связей внутри стека(ну например пять одинаковых по размеру картинок, и одна из них имеет относительный размер к внешним размерам). То есть тмало того что внутри стека константы, они еще завязаны на внешних. Интерфейс билдер не справляется и выдает рандомную рисовку. 3.Как результат нелогичных соотношений соответственно не срабатывают приоритеты hugging и compression resistance Как можно прокачаться в стеквью по полной, чтобы ну вообще проблем не возникало, или может есть обходной путь, прочитать про верстку адаптивную чтобы реже прибегать к стекам
>>1289909 В любом тьюринг полном языке можно напердолить любую вещь стандартными возможностями языка. В си по дефолту нет ООП конструкций в их современном понимании, а именно их и подразумевают не-аутисты, когда говорят что в языке есть ООП или нет.
>>1290194 Стек вью обладает своей логикой констрейнтов, там нельзя просто так пихать любые констрейнты, вернее можно, но они не будут работать так как вне стеквью. Смотри доку, там все достаточно подробно описано, там многовато, но это снимает любые вопросы.
Планирую купить месяц курсов у swiftbook, какие подводные камни? стоит того? видел там есть курсы по networking'у, многопоточности. Хочу в этих моментах поднабраться знаний.
>>1290247 >Планирую купить месяц курсов у swiftbook, какие подводные камни? стоит того? видел там есть курсы по networking'у, многопоточности. Хочу в этих моментах поднабраться знаний.
Все и так доступно в интернете. Они просто спиздили оттуда информацию и продают.
>>1289894 Решил в слова поиграть, долбоеб? Тебе с твоим ООП в С различать их нахуй не всралось, дурачок. >>1289883 Плевать на мои санкции, да? Не нравится - уебывай в /га, пидор. >>1290037 А ООП без классов - для борщехлебов-аутистов с хуйскелем, придурок. Сам же себе противоречишь.
>>1290197 Да, байтодауны -- они смешные. ООП в С - это еще начало. Видел, как такие долбоебы с нихуя начинают вручную по байтикам экземпляры классов куролесить (в С++), или очень креативно работать с исключениями, например.
>>1290803 Ты наркоман? Нахуя ты со своим энтрилевельным scanf("%d", &a); вкатился в айос-тред, ты сам-то именно, что макака тупорылая и есть. (Тебя, блять, даже икскод унижает, вангую, очкозавр, на твоей сраке уже можно жарить яичницу, лол.)
Уебывай домой в тред самодельных дилдаков, пирожок.
>>1290998 >>1291272 Как мне противно стало от твоих реплик, сразу повеяло запахом пивасика, нестиранных носков, немытого хуя, воняющих спермой ручонок, обсуждения нового ядра, хихикающих японских девочек в аниме, грязных футболок с пингвином, немытой посуды, мусора за монитором, консоли, ухающего митолом сабвуфера, разговоров на linux.org.ru, ноутбуков Lemote Yeeloong, метро, волосатых бомжей в ярких самодельных свитерах, загадочно-дебиловатых улыбок тощих прыщавых студентов на Linux Install Fest, следа от задницы на стуле, аутизма, гомосексуализма, застарелой девственности, плохого здоровья, отсутствия жизненных перспектив и мыслей о суициде.
Обмазываешься несвежим "ООП без классов" - уебывай к хаскель-опердышам, хули ты тут забыл-то, задрот ебаный.
>>1291148 Где поиздеваться над сиськатым байтоебищем, если не здесь :3
Какие есть способы менять высоту, например UIView в зависимости от ширины ? Что бы на разных устройствах картинку не пидорасило в ширь? Заебался это делать програмно, через AutoLayout это можно как-то сделать?
>>1291464 >Обмазываешься несвежим "ООП без классов" Ты все никак не успокоишься? Пиздуй работать за плошку риса, пока такие же вкатывальщики твое место у параши станка не заняли
>>1291464 Блять, ты реально какой-то поехавший шизик. Во-первых тебе писало два разных человека, ты даже не можешь осилить две ветки диалога, какое тебе ООП, шизоид?
Во-вторых я сижу где хочу, и в этом треде в том числе т.к пишу на свифте, и нахожусь в этом треде поболее тебя. Между прочим если откинуть такое, периодически залетающее говно, как ты, это один из лучших тредов на двачах. Ты же просто залетный агрессивный шизофреник и съебать лучше тебе.
>>1291703 Ты, пидорас, думаешь, что тут все вкатывальщики, лол. Иди борща мамкиного наверни, таблеточку прими, заебень пару оперденей на хаскиле, да посмотри, сколько получают "макаки", а сколько - сиськатые лохи-байтодрочеры в своих НИИССУ.
>>1292022 >бабах Чего ты там пишешь, долбоеб, на свифте, аналог своего сканф хуе-мое принтф хелло ворлд? Людей-то не смеши, задрот. я оп пары предыдущих тредов, дурень
>>1292022 Всегда интересно, какой типаж у таких ИРЛ, как они общаются, двигаются, выглядят. Просто ИРЛ смотришь на людей, и ни одному не подходит такое амплуа суетливого шизика. А ведь кто-то таки им является.
Подкиньте эталонных приложений на гитхабе, где можно разобрать сложную архитектуру/сториборд. Почитал я про всякие архитектуры где можно разгрузить вьюконтроллеры и охуел с того, как все по-своему видят архитектуры. Как я понял, нужно взять на вооружение паттерны, базовое понимание архитектур и пилить по-своему.
Анон, нужна помощь вкатывальщику. Есть TableView и ячейка в ней. Плохая ли идея парсинга данных в момент, когда происходит performforsegue при нажатии на ячейку?
>>1292051 Да я-то, в отличие от тебя, знаю, как работает память, и знаю, например, как писать дрова под винду на твоем крестаче (и под макось на иокит тоже немножк ковырял, но так, чисто праздно). Тот, кто НИШАРИТ тута - это ты тута, псина, лол.
>>1292072 >02:25 >03:26 >называет кого-то суетливым шизиком Зато я знаю, какой типаж у тебя, НЕСУЕТЛИВЫЙ ты наш крестатый семеныч.
>>1292547 Видишь буковку Y у моего поста и ее отсутствие у чужого? В тебе несколько людей видят шизика. Такова реальность, как бы тебе от этого не было неприятно.
Кто-то сталкивался с тем что на некоторых устройствах universal links не работают, хотя как проверяешь на симуляторе/другом телефоне все тип топ? Нашел вот такой вот баг http://www.openradar.me/radar?id=4999496467480576.
>>1292547 >знаю, как работает память Ебать ты эксперт братишка, тебе наверное лично Слава Пестов руку жать приезжал, такое редкое знание у тебя есть, элитное.
Есть какой-нибудь хот кей, который по уже объявленным параметрам класса инициализирует по этим данным конструктор? И какой-нибудь toString() есть здесь?
>>1293443 Конечно можно, живут же люди с дджавой или обжси, как минимум у структур возможна нормальная иммутабельность. Ну и если инициализатор не объявлен будет конструктор с полями структуры. И в памяти они по другому представленных, это может быть плюсом.
>>1293456 >Положи мне класс на стек, как в крестах. Что блять? Какой стек? Какие нахуй кресты? Хочешь ебнуть массив хуяришь Array<FuckYou> и все. Ты ебанутый что ли?
>>1293476 >как минимум у структур возможна нормальная иммутабельность. Где она может быть пригодна?
>>1293540 >Где она может быть пригодна? Она делает код проще, нет конечно фломастеры разные и тд. это выбор команды и тд. Как минимум безопасный мультитрединг, но в свифте это достигается копированием стурктур.
>>1293570 >Ты не понял, мы говорим не о стеке как о структуре. А. знакомая картиночка. А че в крестах можно классы класть? И что, это сильно важно, что у тебя стракт лежит в стеке, а не референс на хип?
>>1293571 >А че в крестах можно классы класть? Да в сишке структуры, в плюсах классы, когда они выделенны на стеке конечно нельзя было их выносить за пределеы области видимости, но никто не мешал когда закончил с ними работу, скопировать их уже в хип. > И что, это сильно важно, что у тебя стракт лежит в стеке, а не референс на хип Да, это может играть большую роль в потребляемой памяти и перформансе, зависит конечно от конкретного места. Скажем так, намного проще вычистить из памяти разом тысячу структур одним махом по окончанию блока, чем ебаланится с рефконутингом, рефканутинг еще ничего, скорее всего компилятор выкупит чо куда, но например в языках с GC (хотя реф коунтинг это тоже гц, но он притворяется что нет) бывает выежикиваются разными способами с тем что бы аллоцировать объекты не на хипе.
>>1293581 >хотя реф коунтинг это тоже гц не-а. А по существу все верно сказал, только зачем метать бисер перед свиньями? Все равно ж этот ньюфаг нихуя не поймет
>>1293589 Ну мало ли, что написали в книжечке Кстати, как книга, читать стоит?. GC работает в runtime, анализируя ссылки и пробегая по графу объектов, в то время как арка — фича компилятора в первую очередь, которая добавляет retain/release в соответсвии с типом ссылки.
>>1293602 Да, но retain/release тоже в рантайме работает. А ведь еще там не сразу как каунтер убирается высвобождение происходит, там по хитрее схема вроде. Я опираюсь на слова инженера джавы (Шипилев) который занимается всякими gc, потому я думаю если он говорит что ref counting это gc, и по смыслу он делает то что и gc, то не вижу причины отделять его. Ну и на книжу опять же Шипилев ссылался, похоже что это довольна фундаментальный материал по теме мемори менжмента.
>>1293611 >А ведь еще там не сразу как каунтер убирается высвобождение происходит, там по хитрее схема вроде. Ну да, должен сначала цикл авторелиз пула пройти. Суть в общем-то в том, что GC облегчает компилятор, а ARC наоборот усложняет его. Но GC во время исполнения проверяет связи объектов, запуская определенные процессы анализа и освобождения объектов, в то время как в арке большая часть работы исполняется при компиировании именно там устанавливат релизы/ритейны по связям в графах, а в рантайме уже нет никакого анализа — тупо счетчик плюс/минус там, где надо, различные копирования ссылок и вызов dealloc при обнулении. Если интересно, https://clang.llvm.org/docs/AutomaticReferenceCounting.html#id55
Уважаемые айось господа. Стоит ли вкатываться с нуля (имея знания в других языках\средах) сейчас в эту сферу? Сильно ли ниже конкуренция чем в веб и андроид разработке?
Думал вкатиться нормально в nodejs/go и пилить йоба-бэкэнд, но таких макак ещё много миллионов и не ясно как с ними конкурировать.
>>1294116 Ну сам то рыночек специфический. Много стартапов в которые хрен попадёшь. Но в целом работа есть. На крйняк всегда можешь накопить подушку и делать что нибудь в одно рыло, тут бекенд то и может пригодится.
>>1294135 > хрен попадёшь Чушь полнейшая. 90% предложений о работе - стартапы-однодневки, пилящие очередную соц-сеть или клон любого популярного приложения. Пишут опытным разрабам нонстопам. Им всем нужен опытный сотрудник за дешево.
>>1294116 >Сильно ли ниже конкуренция чем в веб и андроид разработке? Хуй знает как в вебе. Вкатывался через андройд. На началке только ЗП чуточку различается. После 3-4 опыта у всех поровну в мобилке, что там, что здесь. А если ты еще йоба инженер, который шарит и там и там, то будут платить больше кнчно.
>>1294282 хуясе ебать, я тут в ахуе сижу что в дифолт сити ни джуны ни интерны нах не нужны, а тут у миддл-сениора беда кто же нужен тогда работодателю?
>>1294413 > Кто же нужен тогда работодателю? Никто. В IT куча пузырей, которые скоро сдуются. Крики про нехватку программистов были, чтобы сбить нам зп. Теперь на рынке дохрена раб силы.
>>1294469 плюс еще важен вопрос с локацией где ты находишся, если в дс/дс2 то плохо а если из мухосрани отклики шлешь, то это норма, никто щас не хочет понаехов брать, тк выбор есть
>>1294116 если ты "бомж", те без денежек, то тут есть реальная проблема с оборудованием не думай что сможешь обойтись эмуляторами плюс нужно за лицензию разработчика платить, не думай что без нее сможешь обойтись а это все денежки которые придется отдавать, те ты сразу в минус уходишь
>>1294474 > не думай что без нее сможешь обойтись Вообщет нормальная компания покупает корпоративную лицензию. Хотя бывают бомже-стартапы для которых нужно публиковать. Как правило это всякие знакомые-знакомых, которые лезут с предложениями сделать им ап.
>>1294474 Если прокачаюсь, то всегда можно купить мак мини и лицензию, а айфон у знакомого попросить на пару часов, чтобы оттестить на реальном железе.
Глупо сразу покупать макбук про за 2к далларов, чтобы когда-нибудь, может быть, разрабатывать под айось.
К тому же у меня пека на райзене 1700 есть, думаю там эмулятор будет вообще сказочно работать.
>>1279149 > 2019 > у айфонов почти терабайт стораджа, и айпада уже терабайт > трястись над десятком мегабайт
А вообще, насколько я знаю, они ещё не запилили ABI - application binary interface, но работают над эти. Когда запилят, смогут рантайм свифта хранить в айос и макос, тогда твоё приложение будет весить 1кб
Раньше такой синей полоски в плейграунде не было.на комманд+ р не отвечает, как запускать-то?
Видать эппл обосрались с хкодом 9, когда каждый раз он биндился, что в конечном счете приходилось перезапускать сам хкод. А сейчас мне блять курсором тыкаться в это говно пиздец впадлу.
>>1295949 Бампую вопрос. Хотел разобраться в этих архетиктурах, нашёл тысячи вариантов этого вайпера, даже рамблер свою книжку написал собаку съев. Но от одного анона услышал, что все это не стоит свеч. Где есть вайпер обычно нету тестов, хотя изначально для этого и задумывалось. Если целью является модульность, то при имплементации сложность кода увеличивается в разы при шаге влево-вправо, нестандартное использование сегуев, свои вариации архитектуры(в том же clean swift в туториале описывает одну структуру, а шаблоны уже генерят другую) и прочее прочее. Стоит ли игра свеч и что посоветуете почитать на тему архитектуры? Не про очередной m(x)c, а скорее best practices для mvc
>>1296254 А хкод на виртуалке без всяких эппл ид нормально запустится? Сори за такие вопросы, просто зная политику эппл, не хочется ставить виртуалку, чтобы потом оказалось, что на ней нихуя без мака и айфона не работает.
>>1296259 >без всяких эппл ид нормально запустится? Опубликовать ты в любом случае приложение не сможешь. Запустить тоже нет, тк требуются СЕРТИФИКАТЫ. Но эпплайди ты можешь зарегать как бы без проблем. Денег не просит, пока нет желания публиковать приложение.
>>1297539 >пробуешь Вот кстати как бы эппл не говорила, что язык охуеннен, он просто отвратителен в заданиях по вузу. Особенно в работе со строками, чтобы вырезать, поменять, отшлифовать - обязательно ебешься с этим ебучим String.Index. Почему сука на СО уже есть exstensions по работе со строками, более абстрактнее, чем свифт предоставляет это сейчас то блять? На еволюшине есть хотя бы ишью, чтобы пофиксить эти ебаные операции со строками?
>>1297549 Свифт очень слжный язык. Я одно время пытался в питон и свифт одновременно. Сук, свифт забывается мгновенно. Очень много всякой хуйни про него надо помнить.
>>1297583 >Ты просто лошара неосилятор, АХЪАХАХАХАХААХАХ
Что там, подскажи как вырезать мне первые 5 символов со строчки? А сука? Below - простой сука пример let str = baseStr[..<baseStr.index(baseStr.startIndex, offsetBy: 6)]
Люди уже сделали удивительные возможности, чтобы облегчить эту ебучую работу со стрингами, пикрил 1 екстеншены, пикрил второй - реализации без мозгоебства.
Иди нахуй, петух. Неосилятор блять. Сложные алгоритмы я на джаве уже реализую, потому что понял, что это пиздец будет в свифте.
>>1297597 И это экстеншены только со стрингами. Представляю как люди в компании, то бессилия набивают руку на этом, а потом создают экстеншены по 1к строчек и перетягивают с проекта на проект, чтобы было ЛЕГЧЕ.
Ну как грится, не только лишь все, мало кто может это делать. Не первый раз наблюдаю попаболь джавистов и сишарпщиков увидевших свифт. В этом плане беграунд из обджектив си и си плюс плюс намного лучше службу служит.
>>1297597 Джаваблядок опять не может сделать шага без готовых решений от барина и спотыкается на любом месте, где нужно включить головушку. Хули, привык, что на сервере подкинул диск и можно еще 100500 функций пердолинга со строкой добавить в стандартную либу
То что у меня ошибка вылазеет это как я понял потому что присваивание происходит в if хуйнюшке (так как когда она завершается исчезает lastName)? Значит тут ничего не исправить и просто нужна другая конструкция чтобы это работало?
>>1298097 Ну хуй знает, недавно подогнали ключ на джетбрейнс продукты на год, поставил аппкоде и как-то разочаровался, все кукарекуют насколько он лучше. Я за пару недель пользования заметил только, что у него нет стабильных лагов с подсветкой как у хкоде, самый такой жирный плюс его, в остальном ничем особо не лучше, чего-то даже не хватает
>>1298118 Бля я только недавно разобрался как чинить лаги с подсветкой. У меня десятая бетка. Надо сказать что очень радует покамест. Так вот как работает. У тебя пропадает подсветка в файле. Всё чёрное и ты бесишься. При этом вверху файла у тебя стоит что то типа import MyModule import Foundation делаешь так // import MyModule import Foundation ждёшь 5 секунд потом обратно import MyModule import Foundation и подсветка включается
Есть кто хорошо прошарил в РЕАКТИВНОМ программировании? Стоит ли оно того? Вижу проекты на биржах на RxSwift но чувствую, что как и во всем ненативном программировании, придется ебаться при имплементации нетуториаловских задач.
>>1298968 Не понял твоей реакции. Просто rx удобнее других механизмов для асинхронног овыполнения как по мне, нет конечно если тебе не нужно чего-то сложного можно и DispatchQueue бахнуть.
>>1298975 Удобнее писать, а вот поддерживать заебнее, пытаясь через ебовые стектрейсы пробраться. Именно поэтому всякие RxSwift нинужны, пишешь простой сигнал на пару десятков строк и заебись.
>>1299177 Не знаю не знаю, их дебаг решается брейкпоинтами/логом после каждого преобразование. Проблемы возникали разве что если непраивльно/не до конца прочитал документацию.
>>1299381 Добавляешь в subscribe onError и логируешь эксепшн в крашлитику, уже что-то есть, заваливщаяся цепочка не респондится, но как минимум не вылет. Ну и есть же тесты, QA. У меня случались странные вылеты, но проблема была не в интеграции rx.
>>1301152 Продажи смартфонов падают, эпл сдувается, все уже наигрались. Апл стор переполнен всякой фигнёй. Вокруг толпы иос свифт-джунов, а на рынке требуются только сениоры с обж-с.
>>1301175 Проснись, сычь, у тебя подлива мягко стекает из под штанов.
Я знаю человека, который даже твоими манялибами не увлекается, и имеет стабильный доход с одного приложения. + недавно говорил мне, что его хотели купить за лимон, но он отказался. Так что иос разрабы живы, соси хуй.
>>1301183 Его - это кого/что? Разраба нанять за лимон или приложение выкупить? Лимон чего, рублей? Сколько же он зарабатывает в месяц на этой приложухе, $2k? Если так, то негусто - и то, это еще большой успех, которого достигает далеко не каждый.
Предыдущий анон верно заметил, что успехи твоего человечка не говорят о востребованности айос-макак, ведь его навыки лежат не в технической плоскости, ты сам же сказал, что он манялибы не дрочит.
>>1301162 >Продажи смартфонов падают А смысл менять айфоны сейчас, откуда эти продажи возьмутся? Нового ничего в них не появилось. Кроме того, есть огромный вторичный рынок айфонов, про это тоже не стоит забывать.
Ребзя, не могу сформулировать запрос. Какие есть бестпрактисес для серверной фильтрации? Ну это когда вводишь символы, а с сервера подходящие варианты приходят. Я знаю два момента, которые нужно предусмотреть: 1. Желательно сделать таймер, чтобы запрос шел не после каждого введенного символа, а через полсекунды после введения последнего. 2. Добавить токен запроса, чтобы обрабатывался только калбек последнего, на случай если первый запрос выполнялся дольше последнего. Где копать инфу про это?
Проект, который я спиздил с инета, требует кокоапдос. Сначала поставил его с помощью гема, теперь пытаюсь еще и так. Но при установке одной хуйни оно требует какой-то пароль от гитхаба. Что за пароль?
Бля, я понял в чем проблема посоны. Владелец зависимости Ocgvkit хуйни, которую я собираюсь скомпилировать, сменил свой ник на гитхабе. Сменил в каком-то подфайле старый ник на новый - все заработало >>1303193 Я вообще не иос макака, просто надо кое-что сделать с иос приложением, а джетбрейнс я знаю лучше, чем аппкод ванючий.
>>1303196 >Я вообще не иос макака, просто надо кое-что сделать с иос приложением, а джетбрейнс я знаю лучше, чем аппкод ванючий. Я тоже не иос макака, и я тоже с жид брейнс знаком лучше. Разница лишь в твоем даунизме.
Хочу писать свои апп на свифте, сам бэкенд инженер на скала. Сложно рекламировать свой продукт? Нету мака, только айфон у кореша. Реально поставить хакинтош и тестить с него? Махбук покупать не хочется.
>>1303176 толька не гаварити что в вашем редакторе поддержка подсов! есть ли оная для xcode в виде экстеншна а то уже поднадоело возиться с траблами, я конечно понимаю что сейчас набегут землятебепухом и любительсратьвполе-куны, но иногда удивляюсь траблам при махинации с проектами. то скачаешь проект а тебе твой подс неправильно инсталит потому что версия старая, а в бетке вот трабл пофикшен, все по-разному индексируют проект, и еще всячиские траблы, которые казалось бы уже должны быть пережиты за столько времени. нет, в обычном обиходе все окей, но шаг влево-вправо, приходится капать в дебрях
>>1304355 в пидорашке блять че то там работать в иоси, да и вообще хоть веб макакой, нету никакого смысла. ну только если ты не живешь в дсах и тебе не лень прыгать по собеседованиям в поиске нормальной конторы.
ну вот я например работал 4 года иосником мухосрани, думаю тьфу блять, и пошел риелтором работать. хаха, меня тут кормят, дали бесплатное жилье, и за ту же зарплату я работаю в 4 раза меньше. а на свифте пишу щас в качестве хобби.
программирование это переполненный рынок вкатывальщиками, работаешь ты с дебилами ебаными, работаешь с их дебильным кодом. и они же еще и не понимают, что они тупые, ох блять короче мне хуево становится когда я этот треш вспоминаю
>>1304870 Ну что могу сказать. Жаль конечно что из програмача выкатился. Но по-любому так ты прокачиваешься лучше чем работая с эникеями. Желаю тебе вернуться в обойму.
Я сам сейчас вынужден по выходным сидеть и дрочить на ввдц токи, попутно выгребая из головы не побоюсь этого слова дерьмо, которая мне команда в голову за неделю насувала.
Ну хотя плюсы в этом тоже есть. Лучше стал понимать основы. Но это стоит больших трудозатрат и стрессоустойчивости. Но она благо у меня была прокачана 10 годами работы на галерах.
Я понял одно. В рашкинских реалиях только подушка и свой проект. Не дать не взять. Ну или в одно рыло делать. Потому что даже лидом идти это ты заебёшься с макаками и манагерами возиться лол
>>1304888 >лидом Так это, полагаю, еще опаснее для психического здоровья? Ведь там ты отвечаешь не за свой код, а скорее за табун своих макак, не? >свой проект >или в одно рыло делать Что ты имеешь в виду, в чем разница? Делать приложения для дядь целиком в одно рыло?
>>1303607 >Хочу писать свои апп на свифте, сам бэкенд инженер на скала. Сложно рекламировать свой продукт? Нету мака, только айфон у кореша. Реально поставить хакинтош и тестить с него? Махбук покупать не хочется. > мудак чтоли? и так работы нет вы еще со скалы своей лезете
>>1305260 я думаю дело не в скале а в фп в целом я бы и сам съебал из нашей уже не очень уютной помойки туда, только хз куда именно стоит вкатываться.
>>1305250 ну тогда слушай сюда хакинтош как минимум понадобится, как оно там будет работать я честно хз. 99% что все будет работать до момента с публикацией приложения (айтюнс коннект все такое), там возможны подводные. найди себе соседа к которому придешь с дискеткой и скачаешь реферат все опубликуешь я бы на самом деле забил хер на нативность в твоем случае и глянул на реактнейтив или флюттер. тебе это всяко ближе должно быть, сразу обе платформы и тд.
>>1305338 >Потихоньку вкатываюсь в Swift и не могу найти точное значение literal, которое описывает само слово. > нашел за три секунды A literal is the source code representation of a value of a type, such as a number or string.
>>1305339 >A literal is the source code representation of a value of a type, such as a number or string. Это и я нашел, не знаю тогда как правильно сформулировать вопрос в таком случае. Но за сам ответ - Спасибо.
>>1305260 лучшие архитектурные решения, возможность писать труъ фп-код, стандартные библиотеки, и нестандартные тоже, и при всём этом совместимость с жавой. Если бы ещё дженерики не стирались в рантайме, и рефелекшн был получше (без шейплесс), то был бы идеальным языком. >>1305265 спасибо за совет
>>1305618 Суть не в торможении, а в предсказуемости. Лучше пусть потеря перформанса будет равномерно размазана, чем внезапно будет проявляться в одной точке времени, на которую пришелся цикл сборщика. Ну и про футпринт используемой памяти не забываем.
>>1305039 Я когда вкатывался в офис, я уже 4 года изучал программирование. я начал там в 16 лет, ну и меня затянуло так, что я дрочил это каждый день. Вот тогда я понимал, что пишу говно ебаное и мне нужно учится. А в офисе долбоеб копипастит классы, и не понимает что он долбоеб, даже если я ему показываю как можно не копипастить, напротив, он мне говорит, что я хуйню ему какую то непонятную и сложную втираю, а тимлид не понимает нихуя кто прав, потому что не шарит в вопросе. Тимлид говорит мол вот разбирайтесь сами, ищите компромиссы. Я блять понимаю, что я сам не гуру ебаное и не пишу сразу рабочий код в релиз без тестов, но блять что там происходило это пиздец
>>1305618 И в мусорщике и в арке можно было бы предусмотреть их временное отключение, то есть особый скоуп, где для мусорщика объекты не будут попадать в общий список, а для арка бы счетчики ссылок не вкомпиливались. И тогда было бы вообще похуй для перформанса в узких местах. Но этого нет, по этому лично для меня шо то говно шо это А так, гц медленнее, но он и делает больше. Арк например не умеет в циклические ссылки, он по моему вроде просто дрочит счетчики жёстких ссылок
Ебаный сука эпл со своими ебаными материалами, 15 фераля купил новый зарядник, сегодня он стал на 90% юзлес (отвалился магнит и нужно прижимать головку что бы заряжало) и чуть не завалил мак (замыкание и мак в нокауте, но вроде очухался).
>>1306377 > выступающего за чистоту треда от нафанеобсосов? А зачем тогда придумали данные треды? Сидеть и нихуя не делать? Обсуждать арс или жвм? Или сказать анону, что его вопрос сука в доке расписан?
>>1306424 Лучше сидеть и нихуя не делать; лучше позволить треду утонуть чем разводить тут то что происходит в целом в програмаче. Не считая пару тредов c и c++ тут очень вредная конфа.
>>1305762 Помню в юности услышал где-то или прочитал, не помню уже, что больше работы мозг делает во время физической нагрузки. И там же совет был: если программировать одновременно, скажем, приседания делать, то продуктивность возрастает в разы. Попробовал, правда круто. На протяжении последующих лет 5 фрилансил только так. Потом озадачился поработать в настоящей команде. К этому моменту мозг у меня работал только во время приседаний, без них даже под кофе вяловат, но, думал я, команде-то все будет как надо. Приехал на собес, уединился с тимлидом, а у меня не соображает. Даже когда он пальцем в экран безуспешно пытается тыкать. В общем я, чувствуя себя последним кретином, слезаю с стула и начинаю приседать и кодить. Надо отдать должное тимлиду, он не смеялся, просто с интересом наблюдал. Задание я сделал за несколько минут, сел за стул - и снова завис. Ощщем в итоге пришлось просто устно собеседоваться. Именно тогда я осознал, насколько я ебнутый.
Последний раз кодил под iOS чуть ли не в слепую, на дельфях, в 2015 году. Вопрос: есть на сегодняшний день сборник самых популярных микрозадач уровня "как загрузить фоточку в приложение и добавить на экран" для iOS разрабов?
inb4 сначала выучи Swift - я реально люблю сразу погрузиться по максимуму в разработку и язык учить параллельно, несколько лет назад я так же учился кодить на джаве и матлабе и это было охуенно, хоть и спотыкался об изобретение велосипедов неоднократно. В
>>1307214 Мне не конкретно загрузить фотку надо, для конкретных вопросов я на стаковерфлоу найти смогу все ответы думаю. Хочется скорее мини-гайд который в себе будет содержать основы организации iOS и системного API.
>>1307417 >из рамблера авито хуем своего папаши подавился, половину рукомунити заразил этой имбицилией Что? А как все остальные пишут? Я думал вайпер норм. Сам сижу на клин архитектуре в андройде.
Я думаю это пиздец загрязнять контроллер до 10к строк. Потом хуй пойми что там твориться станет.
>>1307427 подмена понятий вейпер нигде кроме снг не используют, что уже о чем-то должно говорить 10к контроллер в вейпере грубо говоря разбивается на 3 файла по 4к строк (с оверхедом). что не меняет ситуацию никак. однако авторитетная компания со сцены вещает что это не так. потом они тебе скажут чтобы ты дробил экран на некие "модули". но ты это как бы и в мвс обычном мог бы сделать. и модель толстую ты мог бы сделать в мвс.
а если уж говорить о свифте, где есть наипрекраснейшие функции, с помощью которых мы можем изейше создать одну чистую функцию которая заменит некий "интерактор", и другую чистую функцию которая заменит "презентер", а еще мы можем их скомпоновать в одну, добавить к ней еще третью которая будет кешировать результат, а потом передать только лишь одну получившуюся функцию в контроллер которая будет вызываться по нажатию на кнопку. и это будет всего одна строчка кода в контроллере, которая выглядит как-то так "let someFunc: (Arg1, Arg2) -> (Result<[Entity]>)". разве это не прекрасно? а если мы захотим написать юи тесты то нам даже моки не понадобятся, мы прям в конфигурировании тестов передадим какую-то другую функцию которая просто вернет нужный результат
вайпер должен остаться только в банках где бюджеты неограниченные которые нужно как-то и чем-то обосновывать, в противном случае он всех нас без работы оставит когда заказчики поймут что ну его нахуй эту мобильную разработку, слишком дорого
>>1307438 > если уж говорить о свифте, где есть наипрекраснейшие функции, с помощью которых мы можем изейше создать одну чистую функцию которая заменит некий "интерактор", и другую чистую функцию которая заменит "презентер", а еще мы можем их скомпоновать в одну, добавить к ней еще третью которая будет кешировать результат, а потом передать только лишь одну получившуюся функцию в контроллер которая будет вызываться по нажатию на кнопку. и это будет всего одна строчка кода в контроллере, которая выглядит как-то так "let someFunc: (Arg1, Arg2) -> (Result<[Entity]>)". разве это не прекрасно? Не понял.
Ты хочешь это куда ебнуть? В repository который будет содержать network requests и дергать оттуда?
Да, согласен. Вайпер не для свифта, а для шарпа или явы. Тоже сейчас ебусь с ним на работе. Для свифта идеально MVC, что собственно объясняется тем что Эпл сам испокон веков сидел на MVC и свифт поневоле под него сделан.
>>1307456 майкрософт к слову f# сделал, в джаве лямбды появились, kotlin начали вроде как одновременно со свифтом разрабатывать и языки получились достаточно похожими. как мне кажется такое бывает когда все сталкиваются с одними и теми же проблемами.
>>1307449 саму функцию? эта функция может существовать сама по себе в отдельном файлике, единственно раз это замыкание, то сама фунция будет хранится в виде func makeSomeFunc(URLSession или что там нужно будет) -> (Arg1, Arg2) -> (Result<[Entity]>). там где мы создаем viewController делаем что-то типа viewController.someFunc = makeSomeFunc(URLSession.shared). это может быть координатор например. композиция или декорирование выполняются либо здесь же, либо тоже в какой-нибудь отдельной функции. зависит уже от структуры в целом, будущих изменений и тд
>>1307473 и то это лишь пример. основной мой посыл в том, что не стоит верить всему что говорят. всегда надо думать своей головой. я за последние пару лет около 5-6 человек прособеседовал которые использовали вайпер. 1 работал в банке и его все устраивает, остальные на вопрос будут ли они на новых проектах выбирать вайпер отвечали что нет
и клин архитектура это не про вайпер, и не про vip (clean swift продаватель книжек собственного сочинения). клин архитектура это идея про однонаправленный граф зависимостей в приложении, чтобы в самом низу был домен который не зависит ни от чего, потом шли зависимости приложения которые опираются на домен и дальше по нарастающей.
>>1307478 > граф зависимостей Да. Сейчас ебусь с лидом, который пришёл с шарпа и про этот граф в помине не слышал. Тут одним предложением сложно донести это правило. Надо пол годика просто попрогать для себя приложушки, и на опыте это познать.
>>1307478 >клин архитектура это идея про однонаправленный граф зависимостей в приложении, чтобы в самом низу был домен который не зависит ни от чего, потом шли зависимости приложения которые опираются на домен и дальше по нарастающей.
В самом низу это бизнес правила. Домен находится на втором уровне, или же это можно назвать use cases.
Ладно, я думал что-то подобное будет в иосе, но вижу все любят костылить. Ок.
>>1307488 Беда всех этих раскладов в том, что они слишком теоретизированы. Поддерживающий этот паттерн в общем то правильно рассуждают, стремясь выделить обобщённый кусок логики, подходящий ко всем проектам. Но они закапываются в теории и зачастую пишут много бессмысленного кода. Умные люди призывают более локально смотреть на проблемы.
>>1307495 > чет ты нахуевертил конеш сигнатура функции будет (name: String, completion: @escaping (City?)->Void)) -> Void внутри таска где гвард перед ретурном делаешь completion(nil), убираешь var city, в строчке с маппингом делаешь let city = mapping, после completion(city). все ретурны убираешь.
>>1307438 >и это будет всего одна строчка кода в контроллере, которая выглядит как-то так "let someFunc: (Arg1, Arg2) -> (Result<[Entity]>)" хаха, я тоже к этому пришел. но толи люди - дебилы ебаные и не понимают этого, либо они специально городят говно ебаное, что бы затягивать разработку я хз >>1304870-слав
>>1307604 Что? Зачем? Почему бы не создать repository - где будет происходить банальная связь с сетью, + класс handler Database - для работы с базой данных и все.
>>1307604 >https://pastebin.com/HaPkCFqQ Да, ты на правильном пути. Но всё же свифт это немного больше про модели нежели чем про ФП. В твоём случае, я не знаю зачем, но можно например вот такую штуку сделать
>>1307617 Чувак писал > создать одну чистую функцию которая заменит некий "интерактор", и другую чистую функцию которая заменит "презентер", а еще мы можем их скомпоновать в одну, добавить к ней еще третью которая будет кешировать результат, а потом передать только лишь одну получившуюся функцию в контроллер которая будет вызываться по нажатию на кнопку. и это будет всего одна строчка кода в контроллере, которая выглядит как-то так "let someFunc: (Arg1, Arg2) -> (Result<[Entity]>)" Я это повторил как понял. При чем тут твоя база и сеть для моего примера со счетчиком?
>>1307620 Падажжи, мы обсуждали альтернативу вайперу. Вот как ты по методе >>1307438 написал бы вьюконтроллер для счетчика в моем примере?
>>1307627 >Вот как ты по методе >>1307438 написал бы вьюконтроллер для счетчика в моем примере? Я бы методу эту не пользовал, но это дело вкуса. Вот так бы и написал https://pastebin.com/Mnmtu6HR
но есть нюанс, а именно что у тебя здесь вьюстейт используется, это немного другой паттерн. я имел в виду не внутренний вьюстейт, а внешний, когда мы вместо явной зависимости передаем во вьюконтроллер конкретную функцию берущую/изменяющую какие-то данные нужные только этому вьюконтроллеру. грубо если в твоем примере State поменяем на какой-то глобальный объект, типа базы, то мы во вью контроллер передадим так же две функции для двух кнопок извне и вью контроллер не будет знать о стейте ничего вообще. надо только учесть что будет обратная связь которую необходимо будет тоже обработать (перерисовать лейбл)
>>1307617 все эти ухищрения и лапша из коллбеков в дальнейшем создают DSL внутри координаторов, на котором мы можем описать практически всю бизнес логику приложения. и в тестировании мокать функции проще чем мокать базу данных. и тестировать чистые функции так же проще чем объект Database. ну и будет меньше кода, сущностей, файлов, что тоже вроде как неплохо.
>>1307633 >Ну так ты теряешь возможность инжектить во вьюконтроллер поведение извне, о чем говорилось в пасте
Здесь есть глобальные функции, то ест доступная из всего приложения. Это с одной стороны упрощает задачу, с другой усложняет. Я не любитель функций, которые хранят стейт приложения. Их надо по возможности поаккуратней юзать. Базы, хуязы. Я за то чтобы решать всё с помощью Dependency Injection при инициализации объектов, в данном случае контроллера. работы больше, но читаемость когда намного выше.
> var incHandler: Reducer<State>! > var state = State(number: 0) { didSet { render() хуйни абстрактной нагородили
там, где действительно только две кнопки с +1 и -1, делайте viewcontroll, где вы делаете просто +1 и просто -1, без лишней хуеты.
берите сразу и отобразите этот тред для примера, то есть реальный пример, так понятнее будет всем. тут сразу и работа с сетью, и с таблицей, и посты можно скрывать и репортить.
>>1307634 Чем это принципиально отличается от MVVM? Функтошизофренией по моде десятилетней выдержки? Ты не видишь, что набор этих разрозненных хендлеров, призванных решить общую задачу отображения/изменения модели вьюхой, можно объединить во ViewModel?
>>1307836 Можно быо бы и привыкнуть. В ИТ часто так, понтов дохуя, слайды закачаешься, перспективы радужные, а как show me the code слушишь сверчков. Мы живем в не идеальном мире и было бы наивно полагать что красивой математикой, где все идеально, можно было бы выразить программы.
>>1307836 > @discardableResult static func accountProfile() -> ApiRequest<CurrentUser> { return ApiRequest(.get, "account/profile") } лично я могу тебе только эту хуйню показать, все остальное сырое, да и это тоже на самом деле https://pastebin.com/zwTU42E1
>>1307836 Двачую этого анона >>1307921 . Тот кукаретик с функтопарашей - это пафосный процедурный дурачок простой, застрявший в 2009 с хаскелем. А в Java фишка с анонимными классами - вообще топчик, прямо то, что надо (если ты не процедурный даун, конечно), в Swift такого нет вроде до сих пор, а жаль.
>>1307921 > а как show me the code слушишь сверчков Постоянно такая инфантильная хуйня. Вскукарекнуть что-то важное и раздувая щеки унестись в закат - это святое. Собственно вайпер и популярен потому, что нашлись люди, которые в рамках этой концепции все расписали и объяснили, а не жмутся по углам при любом неудобном вопросе.
>>1308049 Хуямбды, блять. Вам, процедурноблядкам, класс или файлик в проект добавить - все равно, что дом на соседней улице построить - свершение, нахуй. Хотя на самом деле это ничуть не сложнее, чем кложур, более того, возможности у класса гораздо шире. Вместо того, чтобы разводить, как тараканов, отдельные хендлеры по всему коду (я уж молчу про твои ФАБРИКИ ХЕНДЛЕРОВ), можно было бы просто написать единым блоком класс-делегат именно там, где он непосредственно нужен, внутри кода, от которого он и зависит.
Это было бы удобно, гибко, читаемо и обозримо, без необходимости вкуривать, что там функтодаун понаквохтал из-под шконаря по всему коду, вот прям сразу.
в эпплофреймворках такие делегаты - обычное дело, все сходится
>>1308069 Писать под иос и не пожрать говна при этом очень сложно(если вообще возможно), потому что в самой стандартной библиотеке куча говна навалено.
Ебать вы тут устроили махач на гвоняхах. Мне кажется стоило бы написать маленькое тз и каждый оппонент написал бы по нему вылизанный код, что-то маленькое на два вечера, а там дальше анонимное голосвание с разбором +/- вот это вот все.
>>1309132 Ты сам-то хвостом не верти, петушок. Попустили – беги подмываться, манюня. Я тебя и так неплохо проконсультировал, а ты даже спасибо не сказал, свинья неблагодарная. Хотя должен мне хуец сосать неделю минимум за это.
Чтобы в архитектуросрачах не прослыть пиздоболами, придумал небольшое задание. Не показал код, чтобы проиллюстрировать свой подход - стал хуже червя-пидора.
Нужно отобразить тред на сосаче (ThreadScreen) и информацию о посте (PostDetailsScreen).
ThreadScreen: - Показывается изначально после старта аппы, пушится на NavigationController. - После прогрузки экрана запрашиваются посты через NetworkingService.getPosts(completion:) - На экране нужно показать список постов в таблице, в каждой ячейке показывается апперкейснутый (это важно) комментарий. - Ячейка стандартная, ее высота фиксированная стандартная, на лейаут похуй. - В тайтле экрана показывать дату запроса.
PostDetailsScreen: - Показывается по тапу на ячейку в ThreadScreen. Презентится, а не пушится. - Есть кнопка для закрытия экрана. - После прогрузки экрана запрашиваются детали поста через NetworkingService.getPostDetails(by:completion:) - На экране нужно показать комментарий, имя и e-mail (тут комментарий не апперкейснутый, это тоже важно).
NetworkingService есть в репе, он максимально простой и небезопасный. Сами же экраны должны быть написаны так, будто они пойдут в прод. Ну и представьте, что там на самом деле больше всего, а не один ссаный запрос и таблица.
Ебашьте тег #arch , чтобы легко потом по тредам собирать было.
>>1309194 как мне нравятся вот такие "примеры" архитектуры для 2х экранов. Сколько в свое время для ведра пересмотрел, все такие умные пиздец, стройят свои йоба крутые mvp clean solid архитектуры для 2х ! экранов. как будто реальные проекты состоят из двух экранов и со списком и редактированием элемента списка, блять да тут нахуй архитектура не нужна же для такой примитивной хуйни
>>1309258 Тебе не все равно откуда клонировать репу?
>>1309265 Специально для тебя предпоследнее предложение в посте. Большое задание никто делать не будет. Я и про это маленькое не уверен, обычно тут только пиздеть горазды.
>>1309194 Двачую >>1309265 . Зашел обоссать тебе еблет, а это уже и без меня сделали. >>1309267 Да никогда не надо оверинженирить, БЫДЛОКОДЕР ты тупорылый. Ты на ровном месте умудрился обосраться. >>1309275 >пиздеть горазды "Мужик должен", ага. Пройди нахуй, чмошник. Прям так все и кинулись тебе чего-то доказывать, пидор, ага. Ты еще унылее пример могла придумать, задротина?
>>1309165 Классиков программной инженерии читай, долбоеб, чтобы не быть таким неучем криворуким, каким ты сейчас являешься. Буча там, Фаулера, Брукса, и т.д.
>>1309353 Это конкурс для тех, кто хочет померяться. Ясен хуй, нужно быть готовым объяснить как это все масштабируется при увеличении количества состояний, юзер экшенов и всего такого. Не можешь показать код - проходи мимо, это не мануал "Как надо писать", а задание, чтобы проиллюстрировать свой подход. У тебя же простыня эмоций, нихуя полезного. Ни конкретных вопросов, ни конкретных предложений.
>>1309527 Та это щитпостер, я ему на голову нассал и его забанили. Не известно, способен ли он писать под иос, или он просто по треда прыгает, оперируя поверхностными общими знаниями
тут нет обработки сетевых ошибок, нет какой то индикации загрузки. PostDetailsPresenterInput - там допустим форма ввода нового поста будет так же закрываться. а если там будет хитровыебнутая анимация анимаций закрытия, что у тебя подразумевается копипаст простыни кода?
> func numberOfSections(in tableView: UITableView) -> Int { return 1 } а если там в таблицу надо будет вкорячивать рекламу например сверху(ну вот я пидор и хочу рекламу), а снизу форму ввода нового поста. tableView.reloadData() - а если нужны будут анимации.
> self.textLabel.text = state.text а как же парсер?
и так далее короче. у меня нет цели доебаться до тебя, просто раз уж ты все равно уже выложил пример. цель то показывать новичкам, но нахуя им видеть кальки статей для новичков? у них когда возникает вопросы про архитектуру, они уже и так должны знать как вывести таблицу и сделать запрос на сервер.
и что это, конкурс? человеку будет какой то смысл потеть над качеством и продуманностью, или можно сделать на отъебись, лишь бы было?
>>1309585 >появление этого моего поста означает, что модер тебя наебал любой дурачек может обойти бан. вся суть в выкуривании долбоебов из тредов в том, что тебя будут банить пока тебе не надоест обходить баны.
>>1309527 Короче говоря, специальная олимпиада для занудливых задротов. В айос-тредике таких отродясь не бывало. Видимо, Swift уже не такой элитно-хипстерский, и запах несвежих носков, конпеляция ведра, нудные холивары по поводу не интересной вменяемым людям хуеты, аутирование перед экраном по ночам и прочие развлечения ущербных ботанов потихонечку протекают даже сюда. Очень жаль.
>>1309588 > тут нет обработки сетевых ошибок, нет какой то индикации загрузки. Добавляем в стейт 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:) в таблице.
> а как же парсер? Что за парсер? Если ты про требование, чтобы коммент был апперкейснутым, то это делается в презентере. Я чуть выше писал, что вьюшка просто сама себя рендерит и даже за форматирование не отвечает.
> цель то показывать новичкам Нет, я задумывал это для сравнения всяких вайперов/мвп/мвц/редаксов и прочего, это не мануал для новичков "как надо".
> и что это, конкурс? человеку будет какой то смысл потеть над качеством и продуманностью, или можно сделать на отъебись, лишь бы было? В идеале в примере отобразить коровые концепции используемой архитектуры. В моем случае это дата дривен вьюшка и тестируемый презентер, добиваюсь я этого через недо-вайпер/пере-мвп. Вот у тебя был хороший вопрос про анимации таблицы, надеюсь прояснил.
>>1309594 Ты уже вытекаешь. Это то, что люди на работе делают каждый день.
>>1309588 >у них когда возникает вопросы про архитектуру У меня возникает вопрос про архитектуру, но я не так много знаю в иосе. За день мб смогу туду лист сделать
В андройде легче - там ебнул clean architecture и все. Здесь - не понятки. Склоняюсь на первых вариантах маппинга данных + использование синглтона как нетворкинга. Т
>>1309748 >>1309750 >>1309751 Что, он тебя опять сегодня отхлестал по щекам своим длинным контроллером за то, что ты БЫДЛОКОДЕР ЕБАНЫЙ? Надо было еще в угол поставить куковать, пока все паттерны не выучишь. >>1309588 Меня не банил никто, петушок ты глупенький подшконарный. Вон же и посты мои на месте.
>>1309771 >>1309772 Да я ж тебе и говорю, тимлид тебя по делу унижает, ЗАСЛУЖЕННО. Уму-разуму учит тебя, быдлокодера, золотой человек. И я тоже. А ты хоть раз спасибо бы сказал нам вместо того, чтобы бомбить своей сракой тупой.
>>1309882 Мне даже нечинает нравится что ты скатываешь иос тред в ебаное дно. Туда ему тащем-то и дорога. Бы бы я маленько таким же токсичным как ты, я бы тебе помог. Ну а так буду просто наслаждаться результатами твоей работы. Продолжай пожалуйста.
И да, дружок, айос-треды пустуют, наверное, больше года уже, так что скатывать нечего, собственно. Почитай хоть пару предыдущих, там пиздец. А теперь вот, цыпа моя, агрящиеся на толстоту малолетние дурачки вроде тебя понабежали, хоть порофлю))))0
Няши, посоветуйте сервис для хранения мелких файлов всяких. Смотрел firebase storage - там пишут типо для хостинга user generated content, а мне надо, чтобы только админ (я) мог файлы положить (через готовую веб админку в идеале), а клиенты (ios-apps) могли только прочитать. Логика на сервере никакая не нужна, с хостингами ебаться сложно/не умею
Зачем вообще сейчас нужен хкоде, если можно скачать flutter и делать приложения на нем? Кроссплатформенный мир все ближе и границы стираются. Порыскав по прошлым тредам, я так и не нашел внятного ответа.
>>1311126 Насколько я понял, там опять эта веб-HTML-CSS-хуерга. Лучше более-менее вменяемые киты отдельно под каждую платформу, чем хтмл5-пердолинг подо все.
И вообще, не пойму, чему вы радуетесь. Это как фуллстек: за две-три роли платят, как за одну.
>>1309353 Ну что, как там олимпиада быдлокодеров-лошков? Ты все еще подебитель спустя неделю? А вот тут еще один патырн тебе в ботанскую копилочку, пикрил.
>>1311538 >Насколько я понял, там опять эта веб-HTML-CSS-хуерга. Нет, читай внимательно про флаттер или на худой конец RN. Вы тут без работы остаться можете, включая меня вкатывальщика.
Полезные ресурсы:
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