ИТТ продолжаем разрабатывать под лучшую мобильную платформу, угощать пряниками токсичных и выяснять как с нуля вкатиться на мидл вакансию.
>С чего вкатываться? Со swift book - книжка валяется в интернете.
Стоит упомянуть про складчину иос господ - телега.ми/iOSBooks - валяется огромное количество книжек, хоть обмазывайся. Есть еще одна, из какого местного чатика https://drive.google.com/drive/folders/0B25xie8pit__amNPc1N6OXVFaEU - но там больше старых валяется. Единственный плюс так это обжс.
Devslopes. Начинал с них, рисуют приложения при тебе, особо не углубляются в детали, но как пример можно посмотреть. Сам к ним вернусь, как побольше поучу. https://coursehunters.net/course/udemy-ios11-swift4
TL;DR Как настроить fastlane match для нескольких приложений?
Ситуация такова: у компании есть два приложения на iOS. Одно настроили годно - все эти fastlane / match / travis, второе еще нет. Чувак, который первое настраивал уже не работает, пришедший ему на замену просто ипользует то, что тот когда-то настроил. Под первое был создан репозиторий с сертификатами. Появилась необходимость нормально настроить деплой нового приложения. Можно ли использовать тот же репозиторий с профилями и сертификатами под другое приложение? Как это настроить?
>>1338553 Это не я сказал. Так говорили здесь и чатиках. Сообщество очень унылое. Более унылого не встречал. Поэтому не удивлюсь, если действительно спроса нет, да и писать толком под iOS никто не хочет.
Я говноадинэсник с 10-летним опытом, пытаюсь перекатиться в iOS. Последние 2,5 года в свободное от основной фуллтайм работы время, то есть, по вечерам/выходным/в отпуске изучаю iOS разработку. Не иногда, а регулярно. Последние года полтора - вообще почти каждый день, почти всё свое свободное от работы время на это трачу. Месяца 3 назад наконец-то завершил и опубликовал первое приложение в AppStore. Приложение средней сложности: около 20 вьюшек, CoreData, графики. Знаю и использую Swift, UIKit, Foundation, CoreData, GCD, работаю с REST API на JSON, с Git и CocoaPods. Вот уже месяца 2 активно пытаюсь вкатиться: откликаюсь сам на вакансии на hh, итог плачевный: за эти 2 месяца из 45 моих откликов было только 4 приглашения на техническое интервью, и именно отказов штук 6, остальные отклики - просмотрены, но просто проигнорированы. Сейчас приступаю к изучению MVVM и RxSwift, и затем планирую Objective-С изучить, т.к. в 80% вакансий он требуется. Параллельно пилю второе приложение. Но руки уже опускаются, потому как теперь вообще нет понимания, сколько ещё времени надо проебстись, сколько изучить, чтобы трудоустроиться iOS разработчиком. Реквестирую советов и историй успеха от таких же анонов перекатывальщиков из чего-либо в iOS девелопинг.
>>1338594 >Мб из-за того что нет админов. Наврятли. Сообщество унылое потому что участники тупые наверное. Это вовсе не токсичность. Просто непонятно как в той же телеге обсуждать какие-нибудь значимые и интересные вещи. Всё сведётся к писькомерению. Да даже на дваче их не пообсуждаешь. Обсуждают что-то интересное по языку на свифтовом форуме в разделе предложения длинными и не понятными простынями на английском языке.
>>1338599 У меня тоже такое было. Но как то ты размазано подходишь к вопросу. Главный совет не учи всё что требуются в вакансиях. Учит только свифт и фреймворк UIKit, этого будет более чем достатнчно. Но выучи свифт очень хорошо.
>>1338604 На все вопросы по Swift на собеседовании я отвечал (по крайней мере, на последнем): и про типы данных, и про ARC. А что именно ты вкладываешь в понятие "очень хорошо"? Какие области? И главное - они меня отсеивают, по большей части, ещё на этапе просмотра резюме, и до интервью в 90% случаях даже не доходит. Как в резюме можно показать, что Swift знаешь очень хорошо?
>>1338600 В телеге, да и не только там, есть прекрасные сообщества. Открытые, дружные, живые. Посмотри F# чат в телеге. Так что это не проблема платформы. Проблема есть в самом сообществе iOS разработки. Сообщества как такового нет.
>>1338611 >На все вопросы по Swift на собеседовании я отвечал >И главное - они меня отсеивают, по большей части, ещё на этапе просмотра резюме
Потому что ещё раз. Рынок стоит. Вакансии тухлые. Сейчас никого не берут - ни джунов не сениоров. Никому не нужен iOS. Единственный варик пилить самому приложуху для стора.
>>1338627 >>1338627 Приложуху для стора уже запилил и выпустил. Пилю следующую уже. Насчёт джунов - я уже понял. Но насчёт сеньоров - почти все имеющиеся вакансии именно на сеньоров, причём, обновляются они ежедневно, и зарплаты там от 150-180 и до 300. Зачем же все эти вакансии, если никого не берут? Зачем же тогда они их ежедневно обновляют? Что-то тут не сходится.
>>1338632 C upwork и прочими подобными, как я понял по отзывам, куча времени будет уходить не непосредственно на разработку (и тем самым, прокачивание скиллов разработчика), а на поиск заказов и согласование деталей, то есть, на блядскую менеджерскую работу. И, опять же, судя по отзывам, пока у тебя там малый рейтинг, заказы тебе никто давать не будет, разве что забесплатно.
>>1338634 Так ты видел когда эти вакансии были созданы? Висят по пол-года-году. Обновляются потому что hr отделы создают видимость работы. Они отбирают кандидатов, но босы их забраковывают. Это вообще некое офисное развлечение искать сотрудников. Разбавляется так сказать каждодневная рутина.
>Есть же Upwork Там нужны в основном андроид-иос комбайны для арабов и индусов. Не понимаю вообще, что там происходит и зачем там это всё.
>>1338641 Да, вакансии висят и правда месяцами: когда я начал искать работу 2 месяца назад, вакансии были процентов на 75 те же, что и сейчас. Закрылись ну процентов 25, максимум. При этом, все эти замечательные вакансии обновляются практически ежедневно.
>>1338599 Чот я не верю. Или ты недоговариваешь, и есть значимые вещи, о которых ты умолчал, и которые негативно влияют шансы трудоустроиться, или ты тупо вбрасываешь тут, чтобы демотивировать народ.
>Чот я не верю. Или ты недоговариваешь, и есть значимые вещи, о которых ты умолчал, и которые негативно влияют шансы трудоустроиться, или ты тупо вбрасываешь тут, чтобы демотивировать народ.
Нет, к сожалению, это не вброс. Ситуация реальная. Сам такого не ожидал. Знал бы, что так будет, вообще бы не брался за iOS. Джавой бы занялся лучше. А конкретно о каких таких вещах, негативно влияющих, ты говоришь?
И да, я понимаю ваше ехидство по поводу 1С - 1С это то ещё говнище, далековатое от нормального программирования. Но, тем не менее, я эти 10 лет не "сидел на 1С", как один анон выразился, а сделал множество разных проектов, многие из которых довольно сложны. Это я к тому, что я конечно говноадинэсник, но не 1С-даун.
>>1338687 Добавлю также, что у меня порой возникает ощущение, что вот этот вот 10+ -летний 1С-ный опыт в резюме и отпугивает рабовладельцев работодателей. Но, скорее всего, ситуация на этом рынке и правда полная жопа.
3-4 года назад я жалел, что занялся когда-то 1С, а не нормальным программированием. Потому что 1С нахуй нигде, кроме этой страны не всрался. Сейчас я вдобавок жалею, что занялся iOS разработкой. Потому что работы в этой сфере внезапно не стало.
И с 1С я сам виноват, долбоёб, что не подумал в конце нулевых о будущем вне Роисси, занявшись этой шнягой. Но вот с iOS - кто мог знать, что такая ситуация сложится? Обидно пиздец.
Вообще мне было бы похуй на то чем челик занимался до этого. Хрюшам даже ничего не говори, они на 95% все ебанутые которые путают даже стек вакансий с ведройдом и иосом. Если бы ты нормально хуярил - я бы взял. А то, что ты обжс не знаешь - это огромный минус. Я указал в шапке что есть чатик в телеге - там закинули недавно книгу по обжс для тех, кто шарит в свифте.
>Джавой бы занялся лучше. Вообще хуй знает, будем смотреть в мае гугл ИО и нам скажут, будет ли в ближайшие 2 года ведройд закинут или нет. Там же новая ось появляется, через 5-6 скорее всего будет продаваться, а может и не будет. Небольшая паника пока в сообществе. Некоторые уже и на флаттер смотрят, так как ОСь включает в себя его язык.
А рх свифт вообще для маленьких. Там ничего сложного нет.
>>1338678 Чтобы быть уж до конца точным, добавлю также, что навыки про GCD и REST API / JSON появились в резюме только месяц назад. И, соответственно, на первых 2 из 4 прошедших собеседований, на вопросы про сеть и GCD я отвечал, что не работал с этим. К следующим 2 я уже освоил эти вещи.
>>1338698 Я 34 lvl, но в резюме это не указано. Более того, год окончания ВУЗа, который указывать необходимо, я подвинул, чтобы выглядеть на несколько лет моложе. А что ещё?
>>1338697 Два чаю тебе за книгу, гляну. Я купил вот на днях Кочана последнее на данный момент 6-е издание на русском, но взяться ещё не успел. Хрюшам то я ничего и не говорю, вот только в резюме-то всё написано про мой предыдущий опыт, не опускать же его вообще. Ведь если в резюме у чувака, закончившего ВУЗ в конце нулевых, из опыта работы только 2,5 года фриланса на iOS, это ведь они подумают, что дядя наверное мотал 10-ку по 228.
>>1338702 Ну не хуйней страдал, а изучал всё с нуля. Цель была - выучить базу, сделать и релизнуть приложение, и тогда уже, хоть с каким-то портфолио, так сказать, идти по собесам. Напомню, я работаю фуллтайм, и на работе ничем кроме работы времени не было заниматься скроллинг харкача не в счёт
>>1338703 >34 lvl >год окончания ВУЗа, который указывать необходимо, я подвинул, чтобы выглядеть на несколько лет моложе Чувак, тут на десяточку надо год подвинуть. а не на несколько лет
>>1338709 Освоил - это знаю какие виды очередей и для чего и как их использовать, выполняю dataTask асинхронно, группы использую. Как сделать то, что ты написал - вот так сходу не скажу. Освоил - в таком объеме, чтобы на интервью можно было на вопросы по GCD ответить, так скажем.
>>1338711 На 10-ку это как-то too much. Да и по фото ж видно наверное, что мне не 24. Ёбаный возрастной геноцид - у меня вот сейчас мозг-то работает лучше, чем 10 лет назад.
>>1338713 Да оставляй 34. Всегда ведь есть удалёнка где твой ебальник не видно будет. Про возрастной геноцид это опять к вопросу о гнилости рынка. Тут он думаю играет тоже роль. Такой хуйни в дс2 много я заметил. Бля мне аж тебя жалко стало. Короче перекатывайся в деревню и устраивайся на удалёнку за копейки. Никто тебе больше 40р не даст, готовься к этому. И на ближайшие пару тройку лет 40р в месяц - твоя реальная перспектива. Гит подтяни.
>>1338739 Про 40р в месяц это конечно толсто. Я сейчас за аренду однушки на окраине ДС почти столько плачу. А вакансии на ждунов появляются в месяц 2-3, тыщ на 60-80, и уходят они довольно быстро. Но там требования поменьще того, что я умею. Поэтому, я уже на мидла мечу. Тем паче, что на 60-80к в ДС тупо не прожить, если у тебя съемное жилье. Хотя, конечно, есть и особо охуевшие рабовладельцы, где требования явно уровня мидла и выше, и предлагают они те же 60-80к.
>>1338716 Можно и через семафоры, но с ними можно обосраться, поблочив выполнение вызывающего кода. Можно создать свою конкаррент кью, читать значение через sync, а писать через async с флагом .barrier (это заставит все куски кода в кью выполниться перед текущим, по сути на время выполнения текущего куска кью становится сериальной).
>>1338600 >Просто непонятно как в той же телеге обсуждать какие-нибудь значимые и интересные вещи. Неистово двачую. Раньше форсили соцсети, вообще не приспособленные для серьезных обсуждений, а теперь им на смену пришли мессенджеры с еще более убогим форматом, не позволяющим структурировать информацию вообще. >>1338619 И как в говночатиках можно обсуждать несколько тем одновременно? Это даже во вбыдлятне и в этом тредике проблематично делать. На тематических форумах десятки разделов с подразделами были, и темы, которые обсуждались месяцами до полного исчерпания вопроса, а не уплывали в глухие ебеня за неделю. И это правильно.
>>1338599 А я думаю что ты просто посредственный даун, неосилятор, который не может затащить на должном уровне, все же нужны рок звезды, а тупые джуны нет, вот и весь вопрос.
>>1338890 Тогда походу забей, потому что тут идеальные условия в реалиях раши, если ты тут не закатываешься так долго то уже наверное все...Выход только фол ин делать, увольняться с работы и фулл тайм ебошить гейос! И тут уж выстрелит или ты станешь бомжом.
>>1338900 можно еще придумать себе годик опыта, типо работал на фрилансе и вкинуть в резюме ссылку на какое-нибудь приложение для заказа пиццы в гонконге
>>1338856 >темы, которые обсуждались месяцами до полного исчерпания вопроса Эти темы становились не читабельны. Когда 10 или больше страниц, устаешь все перечитывать. В чатах есть нормальное цитирование, если тебе ответили, то можно перескочить сразу на то место, на форумах такого нет. Есть еще Slack, крайне удобная штука для такого.
>>1338982 Да ну. Я-то помню, как зачитывался такими многостраничными темами. На форуме все еще проще, чем у тебя в чате - если в твою тему ответили, то это в 99% случаев по теме. Слак да, получше.
>>1338994 >если в твою тему ответили, то это в 99% случаев по теме Ага, конечно. Начинаются споры, выяснение отношений, каждый доказывает свою правоту, и всем уже плевать на вопросы топикстартера, все уже забыли про них. Знаем, плавали. Горячие темы бывает так разгораются, что за пару дней по 20 страниц флуда накатывают. Поэтому форумы считай умерли. В том же телеграме или слаке такой проблемы нет.
>>1338856 Гуглю всегда на инглише и не знаю проблем. За бугром всегда исчерпывающе изучают проблему . А иногда вступлю в чатик в телеге, так бомбит. Всегда найдётся местная бригада: умник, который отвечает очевидные вещи в стиле «я бы там посмотрел»; клоун, которому больше негде шутить; пацифист, который изо всех сил пытается наладить гармонию в этом парашнике. Потом гуглишь вопрос на английском и находишь ответ за две минуты, в очередной раз покидаешь парашник, идёшь мыться. Фу нахуй.
>>1339184 А я по свифту никогда ничего не гуглю. Только по юикиту гуглю и по прочему аёсовскому дерьму. Кстати уже давно ничего не гуглил. Кто что последний раз гуглил?
Я не понимаю, почему никто не пишет про модификаторы доступа или вообще малозатрагиваемые темы в книгах? Например open class или же private(set)? Почему я это должен узнавать из примеров кода на гитхабе? Как гуглить такое?
>>1338710 >Цель была - выучить базу, сделать и релизнуть приложение, и тогда уже, хоть с каким-то портфолио, так сказать, идти по собесам Знаю это чувство Пилил приложение 3 месяца На нескольких собесах обосрался На крайнем спросили сколько жму на турничках и из какого я вуза и собственно всё, череда неудач закончилась Это было несколько лет назад Не ссы всё получится
>>1339682 Нет, я пока не понимаю зачем они вообще нужны и не видел примеров даже нормальных. Весь попенсорс залит с прошлыми 2-3 годами, даже смысла нет клонить и что-то там пытаться собрать. Иногда лажу, но чисто из маленького любопытства.
можно ли сделать грид с (например) 3мя столбцами и footer-ом или header-ом, который занимает 3 столбца?
header -1-2-3- -4-5-6- -7------ -footer
типо такого. Попробовал проста размер задавать в sizeForItemAt, но когда в конце не хватает одной ячейки, эти крайние ячейки по бокам почему распологаются
Господа, посоветуйте, пожалуйста, хороших техник проектировки REST API. Желательно без использования Alamofire, не хочу тащить зависимости ради 3,5 эндпоинтов.
>1341816 Если ты нафаня, то можно хуй забить на них. Сейчас у телефонов столько памяти, что обычный нафаня её не забъёт. Другое дело, что негоже не знать как кложуры и ARC работает. Тебе надо подучить эту тему и попрактиковаться на минипрограмках.
>>1342217 Ну вот например, открыли контроллер и сразу с него ушли func updateUIData() { ServerAPI.getBigAmountData { data in self.updateUI(with: data) } } Ох ебать, неужто под запекся ты имел ввиду то, что это экземпляр контроллера останется в памяти связанный только с кложуром, и когда вернется респонс, он всетаки обновится существуя в сферическом вакуме, а юзер открыв снова этот контроллер запустит уже другую связку контроллер-кложур, будто существование параллельной вселенной? Я наверное игрался с unowned и перепутал с данным случаем
>>1342218 Так и будет, вьюконтроллер не будет отображаемым, но будет в памяти. Но это все равно хуйня, там же логика какая-то может быть по таймеру, например, тут дело не только в утечке памяти. Короче сразу нормально делай - нормально будет.
>>1342218 Да, контроллер это всего лишь класс и он живёт в куче. То что ты сказал "в вакууме" это и называется retain cycle. Специально для тебя написал структуру имитирующее это поведение, которую ты можешь собрать и запустить с помощью Package Manager следующим кодом: AppEmitter().run() Советую тебе поизучать PM, шикарный инструмент после которого я хуй положил на плейграунд. Вот эта структурка https://pastebin.com/xnvL0zL6
>>1342225 Тогда вот еще в нагрузочку вопрос, достопочтенный анон. Я когда начал фрилансить, кучу проблем себе нарыл сразу пытаясь делать адаптивные интерфейсы: привязывал размеры элементов к размерам экранов, во всю использовал стеквьюхи, что с этой самодельной адаптивностью не вывозило, да и сам я путался в том, как решить проблемы с констрейнтами, со шрифтами вот все не мог понять, как их менять под размер экрана, кроме как зависимостью от compact/regular. Время шло, я начал подмечать что в некоторых примерах задаются элементы фиксированных размеров, более того, элементу ЗАДАЕТСЯ ФРЕЙМ. Удел плебеев - подумал я, не могут справиться с более адаптивной логикой. Но в последнее время стал более лоялен к этому, и пробую сам так делать, такое чувство будто я программирую матерными словами. Как всетаки обстоят дела с адаптивность? Вот есть дизайн для восьмерки, если слепить то же что и на нем, а потом запустить на плюсе то будет более просторненько, может даже неприятно глазу, это норма? Что говорить заказчику в таком случае? А то у меня мания учиться делать все идеально, потому не могу избавиться от своих же доебов, что интерфейс должен адаптироваться чуть ли не в процентном соотношении к экрану.
>>1342329 >интерфейс должен адаптироваться чуть ли не в процентном соотношении к экрану У людей с большими экранами маленькие члены, пальцы не больше, а зрение не хуже. Просто посмотри на крутые универсальные приложения в сторе - многие даже для айпадов не трогают размеры шрифтов и кнопок, а проектируют интерфейс по-другому.
>>1342329 Говори что адаптивность это важная часть разработки, требующая дохера времени и сил, а это так и есть. Ну а вообще я лично предпочитаю делать лейауты вручную фреймами, нежели констрейнтами, потому что мне так больше нравится, можно делать симпатичные структуры считающие геометрию. Стек вью реальна хорошая тема. Но я даже её не юзаю. Вообще не в курсе про адаптивность и про все новшевства автолейаута. У меня ни времени не желания нет с ними разбираться, не необходимости как таковой, так как я стремлюсь всё к более и более низкоуровневому подходу. Вот тут один анон на openGL рисует, вот это я уважаю и сам к этому стремлюсь. Есть очень и очень много ньюансов в реальных проектах, которые не решает автолейаут. Например тот же кор текст, с помощью которого только и можно рисовать баблы в месенджерах. Вот тут всё время спрашивают про эталонный проект. Чувак, качни соурсы телеграмма и охреней.
>For speedy resolution of memory corruption issues, we recommend regularly auditing your app with Xcode’s memory debugging facilities: Visual Memory Debugger, Zombies Instrument, Address Sanitizer, Thread Sanitizer and malloc diagnostics. что юзали, что посоветуете? для лошар
>>1342348 Я так понял что делать разницу между устройствами не стоит. Разве что между айфоном и айпадом, но функционал позволяет это сделать безболезненно. Просто на одном проекте дали дезигн под 5 и под X айфоны. Делал доп методы adoptFonts, которые проходились по лейблам контроллера и меняли размер шрифта.
>>1342352 Кто как хочет так и дрочит, я смотрю с этими snapkit-ами даже в автолайаут просто, да и не сомневаюсь, что с фреймами все путем, если иметь хорошее представление о картине в целом. Сурсы телеги видел но не разбирал, да и это понятно, всегда смотрел на телегу и считал ее пиком аккуратности и завершенности. Не мудрено что там все на более низкий уровень уходит, чтобы каждую мелочь отточить. Я на такие проекты может и не попаду никогда, вот в чем дело
Как лучше - делать программно навигационную вьюшку и так далее просто рисуя в контроллере, или разбивать все в файлики, наследуясь от UIView и уже там котить, и только потом подключать к контроллеру?
а для ios господ существуют best practices?, типо как в ведроиде - не держите жесткие ссылки на context в треде, не передавайте анонимные листенеры в тред и т.д.
Никакие нахуй бест брактис. Что-то утекает? А не похуй ли тебе? В иосе оч много памяти + шустренько работает, в отличии от шаемипрошивок. И тут нет прям таких год обжектов из которых все можно вытаскивать.
Тупо берешь и наслаждаешься когда тыкаешь анимацию и строишь ручками леяуты.
>>1343318 По каждому разделу существуют бест практисы. Конкретно по тредам: не пользоваться тредами, пользоваться Grand Central Dispatch. Все бест практисы лежат в видео с WWDC конференций. Ищи любую тему и смотри видео, там их очень много. Можешь смотреть с 2018 года, в любом видео есть ссылки на предыдущие видео, которые надо посмотреть. Но обычно в начале видео идёт рекап технологии, потом идут бест практисы. Например последнее что помню из бест практис: использование протоколов в юнит тестах вместо конкретных типов.
>>1343330 > в видео с WWDC конференций Я заметил что там только видео с прошлого года. Вот захочу я посмотреть практики из 2014 года, так мне придется гуглить уже чтобы найти оф ссылку на эот.
>>1343334 В 2014 и раньше всё устарело. Есть кое-что совсем низкоуровневое и там, например OpenGL и что то из сетей. Но там всё на Objective-C, продираться через него то ещё удовольствие. Раньше 2015 года нет смысла идти. Все года можно на сайте найти. Там конечно ебанутая навигация, не спорю. Сам матерюсь от неё.
Не пойму, в чем соль недовольств по поводу подов. Вот изучаешь такой, как лучше запросы писать, как ответы парсить, все сводится к тому что лучше юзать стандартные методы, мол это надежно. А еще и codable появился со своей пресловутой одной строчкой кода. Забиваешь на поды, пишешь дохуя кода, а потом натыкаешься на проект где SwiftyJSON, SnapKit, Alamofire и охуеваешь что господа занятые делом спокойно себе юзают поды и экономят время. Так в чем их недостаток? Насколько я понял, все сетуют за надежность/совместимость, но ведь как только свифт апдейтится, допиливаются и поды, апи ведь то же остается, грубо говорят обновил поды и все работает. Это как если написать проект, и бояться что он сломается когда выйдет новая версия swift.
>>1343402 Поды, которые парсят хттпшки это пережиток времён когда всё было на обджектив сях, когда ещё был жив NSURLConnection тогда имел смысл заебстись с подами чтобы сэкономить время на всём этом. Сейчас же всё стало слишком просто для того чтобы выполнить банальный хттп запрос на стандартной экосистеме. Ты ещё просто не дожил до того состояния когда бесишься от того что твой проект долго собирается лишних 5 секунд, насрано в конфигах, и много какой то левой хуйни тянется и тебя это бесит. Сейчас поды имеет смысл ставить когда нужно кастомная работа с коре графиксом, всякие зумы фоток и прочая поебень. Для хттп запросов смысла в них уже нет.
>>1343430 но ведь попадется какой-нибудь запрос с ответом, в котором единственный нужный элемент находится по пути jsonResponse["root"]["data"]["address"]["local"]["name"]["huy"], тебе теперь принципиально не юзать сторонние либы а городить елку? Просто интересуюсь, пример один из множеств случаев
>>1343661 Я давно чего то не работал с хттп, но насколько я помню в UrlTask ты передаешь кложур, который таск вызывает по завершении и передает туда два аргумента дата и URLResponse. Ты можешь взять этот респонс и поглядеть что он такое. Вообще с нашими кривожопыми бекендщиками помоему только на таком уровне и можно работать, я думаю алмоваре не выдержит реального форкфлоу.
>>1343738 обьявляешь до создания таска переменную, var variable: Product? = nil task... внутрь кложура передаешь эту переменную в кложур (variable = product), таким образом происходит запекания значения variable внутрь кложура, и оно будет жить пока кложур не закончится, даже если в оригинальном контексте эта функция подохнет
Построение программно забавно, но как определиться когда юзать разметку "V: -26-26-26-[v23]-34-234-" как добавлять просто через метод addConstraint.
И вот что я заметил, в первом случае не получится строить охуенные интерфейсы, отрисовка идет по шагам, и пурпурный цвет отрисовывается ниже зеленого, что НЕ должно БЫТЬ по ЛОГИКЕ.
Но мне то похуй, меня волнует этот товарищ на втором пикриле. Какого ХУЯ при двух КОНСТАНТАХ у него СРАЗУ ЖЕ пурпурная вьюшка находится НИЖЕ СИНЕЙ ЧАСТИ? У меня почему то блять так НЕ РАБОТАЕТ как мы видим на пикриле 3.
Но я конечно уже повидал говна, пришлось залеть на гитхаб и потеребенькать сорцы. Я там нашел и оказывается, нужно задать ЕЩЕ ОДНУ КОНСТАНТУ, и объявить опять через addConstant - height, самая нижняя строчка.
Последнии шаги меня окончательно ввели в ступор. Как китаец после 2 констант + использование format разметки добивается результата, когда мне приходится еще дополнительную завязать константу + удалить все мои format билдиры на эту вьюшку и использовать другой пусть по созданию height.
>>1344835 Это ты раньше бугуртил, что нигде про модификаторы доступа не написано? Так и будешь спотыкаться на всякой хуйне, пока не начнешь документацией пользоваться.
>>1343798 Добрый анон, спасибо тебе. Я. правда, попробовал иначе, через класс, но я дико охуел от того, что если в init классу написать забрать json, то создать инстанс в этом классе и тут же вызвать поглядеть его пропертис - не канает, я поседние волосы с жопы выдрал, пока не получилось. А если подождать - так работает. import Foundation
struct AccHist: Decodable { var v_amnt: String var v_ts: String }
class AccHistory {
var inside: [AccHist]?
init() { let url = URL(string: "http://127.0.0.1:5000")! URLSession.shared.dataTask(with: url) { (data, response, error) in guard let data = data else { return } guard error == nil else { return } do { self.inside = try JSONDecoder().decode([AccHist].self, from: data) } catch let jsonErr { print(jsonErr) } }.resume() } func show() { if let showed = self.inside { for item in showed { print(item) } } else { sleep(1) show() } } }
var foo = AccHistory() foo.show()
Может, есть цивилизованный способ? Этот пиздец, чувствую, ну совсем не годится
>>1344966 Замыкание, в котором ты присваиваешь значение inside, выполнится только после того, как данные будут получены. А ты ждешь что они будут получены мгновенно, вызывая show сразу после создания объекта. Дефолтный совет opt+click по любой непонятной хуйне, в твоем случае по dataTask.
>>1344966 Ты более менее правильно мыслишь. Твой код работал бы, если бы дата таск не принимал @escaping closure, а принимал обычный кложур. Когда видишь апи, который хочет @escaping closure готовься к геморою. Это значит что кложур будет выполнен спустя какой-то время а не прямо сейчас.
func multyply0(n: Int, a: Int) -> Int { print("n: \(n)") if n == 1 { print("result is finded") return a } let intermediate = multyply0(n: n - 1, a: a) + a print(intermediate) return intermediate }
может у кого есть опыт продвижения в appstore? не понимаю, почему всякое говно нерелевантное входит в топ 10 по интересующему меня поисковому запросу, а мой апп с оптимизированным названием, словами из запроса в subtitle, keywords, description в какой-то жопе, чесслово сделал и иконку вроде норм и скриншоты, все равно приложение затеряно где-то на дне аппстора, добавил еще больше ключевых слов в subtitle, так еще ниже упал (с практически таким же названием иконкой и скриншотами в google play стабильно вхожу в топ 5 по запросу)
>>1345640 Все просто: количество загрузок влияет на позицию не только в рейтинге, но и в поиске. Можешь через какой-нибудь advertmobile.net купить поисковых загрузок для определенных ключевых фраз, и если приложение хорошее, оно останется на первых позициях.
С октября 2018, при публикации приложения в AppStore, требуется обязательно указывать веб-сайт поддержки приложения. Подскажите, пожалуйста, бесплатные сервисы, где можно простенькую страницу (текст + картинка + ссылка для обратной связи) создать и разместить. До сих пор для этого использовал Google+, но Google+ в апреле закрывается, так что он теперь не подходит.
>>1346396 firebase а если вообще заморачиваться не хочешь, то оставь просто ссылку на форму в гугл документах с двумя полями email и message - этого достаточно
Как вы решаете вопрос с переиспользуемыми кастомными вьюхами? Попробовал сделать из программно, используя SnapKit и возможности автолайаута, то есть набрасываю в кастомную вьюху элементы, "стягиваю" их констрейнтами, и получается что вьюха сама задает себе высоту когда я добавляю ее в иерарихию вьюх контроллера(там тоже все связано между собой констрейнтами). Но вот попробовал пилить кастомные вьюхи в xib - мне это дело показалось очень удобным, не приходится читать заборы кода для простенькой вьюхи, все набросано в сториборде, а логика в соответствующем классе(тот случай когда в ините кастомной вьюхи инициализируется nib и добавляется как дочерняя вьюха). Только вот вопрос(разумеется к тем, кто с этим имеет дело непосредственно) - как в этом случае сделать, чтобы вьюха сама задавала себе размер? Когда я добавляю ее в сториборд, она ругается на то, что неизвестна высота(но она будет известна когда проинициализируется сама вьюха). Тогда я выставляю этой вьюхе фиксированную высоту в сториборде, но приоритет задаю 900 - теперь все работает, но не всегда. Особенно когда эти вьюхи в скроллвью. Есть ли тут боги верстки? Хочу вкатиться в эти детали, а то плаваю чуток.
>>1346970 Спасибо анон, очень годный совет, хоть и очевидный. Отсюда следует еще один вопрос, который уже очень долго не дает мне покоя. Что делать, если рисую в IB, по всем канонам выстраиваю скролабл контент(скролвью->контентвью с той же шириной), и в контентвью у меня содержатся эти самые вьюхи, которые зададут себе высоту в ходе выполнения, но IB ругается, думает что эта вьюха простой хуй, и она не знает своей высоты.
>>1347236 Крепкому мидлу падает по три заявки от хрюш в пол года. Шанс найти работу для мидла 1/3 за пол года и 1/2 за год. Я бы сказал, что скорее нет, чем есть.
Спустя полгода решил почитать про ПОП, словил лулзов. Тогда и не понятно зачем полю age давать онли { get }, если и так и так получается менять. Значит пора читать доку.
Привет, посоны! Не бейты лучше обоссыте! Собственно пытался вкатиться в веб, катился, катился, но не вкатился. Дико ненавидел верастать, прям блять аж тресло нахуй, по этому верстал на уровне 3 дня почитал статьи в интернете. Сам жс и реакт в целом был норм, не скажу что горел всем этим, но не плохо было, особенно когда конторы давали тестовые задания и у меня была конкретная цель сделать такую-то приблуду. Тогда мог и по 10 часов сидеть, гуглить делать. Не суть кароч. Кароч катился я 5 месяцев примерно и началось заканчиваться бабло. Пришлось срочно искать работу. Куда пойти когда нихуя не умеешь? (относительно разработчика конечно) Пошёл в тестировщики на мобилки, геймдев, контора сразу меня обмазала меня техникой эпл, и макбук прошку дали и айпадов, айфонов ебом, бери что хочешь, пользуйся чем хочешь. Сижу с посанами тестирую, в целом весело конечно, но немного переживаю за своё будущее, я хочу через 2-3 года получать 2к $, по мне это хорошая сумма для жизни. Но есть опасения что в куа я этих денег не увижу. И здесь я подумал, что а почему бы не вкатиться, точнее попробовать вкатиться в разработку под айос? Даже если не пойдет, то для работы всё равно полезно будут хоть какие-то знания, всё равно в хкоде ковыряюсь, логи снимаю, парсю билды появятся еще какие-то более глубокие знания всего этого. А теперь к сути. Можно ли начинать учить сразу со swift? Что по конкуренции? Мне кажется, что пониже чем во фронтенде должна быть. Я на самом деле сейчас охуеваю сижу с конкуренции в куа, со слов лида он провел около 170 собесов, за последние пару месяцев и взял только 3 человек, нас сейчас 3 жуна на испыталке. Мне кажется что во фронте что-то похожее происходит. Насколько сложнее swift сложнее того же жс? Если я не осилил вкат во фронт, то я совсем безнадежен? Что имеет по деньгам средний сфивтер по деньгам через год? Как дела обстоят с РЕВОЛЮЦИЯМИ? Жутко бесил фронт, что каждую неделю какие-нибудь хипстеры делали в нём новую РЕВОЛЮЦИЮ, берешь курсы по реакту за 16-17 год, а там уже устаревшая параша и никто так не пишет мол, сейчас другие бест практис от этого просто не успеваешь тольком нихуя выучить, как новая хуйня появляется. Ну кароч, анончики жду советов мудрых.
>>1347662 Когда ты уже гайд по языку прочитаешь, необучаемый
>>1347711 >Но есть опасения что в куа я этих денег не увижу Увидишь, смотри на hh.ru qa automation/lead >Что по конкуренции? Работы для вкатывальщиков нет >Если я не осилил вкат во фронт, то я совсем безнадежен? Да
>>1347711 >геймдев Не заметил, это хуево кста. Куа в геймдеве - это, как правило, мартышки, которые не растут, так что действительно имеет смысл задуматься о чем-то другом. Но мобдев сейчас такое себе, в обоих тредах ноют что работы нет. И всякие флаттеры с фуксиями от гугла определенности не добавляют.
>>1347742 А мне нравится геймдев. Я спецом искал геймдев, мне интересно это. Да и на самом деле здест важна платформа, мобилки, чем сам продукт. По сути в ui один хуй куда тыкатт в игрульку или в очередной говно калькулятор или тудулист. Здесь главное специфика мобайла, тестирование рекламных сеток от гугла, фейсбука и т.д. умение работать с хкодом и андроид студио, ну и всякие впн и т.д.В тестерах счас вроде наоборот мобильщики самые востребованные, т.к. их мало. Через год планирую как раз и отликаться на мидла в геймдев и просить 1500 $по курсу.
>>1347963 > Тогда и не понятно зачем полю age давать онли { get }, если и так и так получается менять > Ну и зачем мне тогда писать в скобочках {get set} ? То что соблюден я это знаю. https://pastebin.com/XDcsc6Lf
>>1348287 >Вырывать что-то из контекста и преподносить, а в прочем, понятно где мы сидим. Не обращяй внимания. Это от недостаточного понимания материала. Фишка эпл это продавать и делать умные вещи. Они сделали очень умный язык и продали его так, как будто это самая лёгкая и доступная изи вещь в мире и что даже любой технарь может в него вкатиться. Вся эта суперпозитивная подача на ввдц, посде которой охуевший зал радостно хлопает в ладоши хотя никто НИХУЯ не понял. Я тебя уверяю, что свифт никто нихуя так и не понял. Это супер научное достижение, и чтобы его понять нужны ГОДЫ.
Когда иос уже умрет? После ошеломительного успеха флаттера я просто не представляю как вы сможете жить дальше. Стабильные 60 фпс, супер легкое создание вьюшек, кеширование их и в целом, очень приятная работа с UI.
>>1348940 А есть норм приложения на нем? А то что не смотрел - все говно. Даже ковырять не хочется. Еще и в прошлых тредах анон, который на реакте ебашит, писал что флаттер не такой пиздатый.
>>1348969 Чел, ты в серьез пишешь, что флаттер может больше нативных средств разработки? Я даже не уверен, что он дотягивает до них. По сабжу, это было вторым приложением после Reflectly, которое я смотрел. Увидел кое-какие недочеты, проблемы с базовой анимацией как и в других приложениях и удалил. Таймлайн прикольный, но я бы предпочел увидеть что-то несложное, но хорошо вылизанное вроде Things. Пока то что я вижу напоминает что-то среднее между приложением и сайтом.
>>1348940 А кроме вьюшек флаттер что-нибудь умеет? Ну они допустим допилили норм кроссплатформенность, а что если нужно допилить AR, нейронные сети, и проч проч?
Захотел поэксмериментировать с созданием кастомных коллектионс вью леяута, все что нашел, так это пару туторов. Нихуя не понимаю, вдупляю уже второй час вот в это https://octodev.net/custom-collectionviewlayout/
Какое-то удаление леяут аттрибутов, какой то метод без внутри ничего, определения index path, что это за блять такое. Параллельно держу доку на 10 вкладок каждого овверайднутого метода и все равно блять сложно. Что за пиздец. Почему нельзя начинать с малого.
>In an effort to keep your account more secure, two-factor authentication will be required to sign in to your Apple Developer account and Certificates, Identifiers & Profiles starting February 27, 2019
Суки, конеченные. Теперь мало того что надо телефон привязывать, еще и к девайсу ебучий айклауд прикручиывать. Пиздец, я если я проебу айфон? Как мне блять залогиниться? Ебучую симку хоть восстановить можно. Блядь.
Есть блять TOTP для людей, нет, блядь, надо свой петушиный 2FA сделать, бляди
>>1350200 Не выдумывай, ты в любой момент можешь получить смску, нажав на соответвующую кнопку под формой вне зависимости от того, что с твоим тилибоном и пришел ли тебе пуш.
>>1350354 И нахуя тогда привязка к айклауду? Есто что, блядь, обычная анальная дырявая привязка к sms, только еще и с доп гемором? Пиздец, блядь, т.е. они заставляют принудительно вкрутить дыру в аутентификацию? Просто блядь слов нет
>>1350378 Очко у тебя дырявое, а аутентификация самая обычная, как у всех остальных. С той лишь разницей, что тебе не надо качать левое приложения для получения кода.
блять, никак не получается загуглить может ли в viewWillTransition outlet быть nil ? на ровном месте в фабрике валятся креши EXC_BREAKPOINT, нихуя не понятно, показывает на вот эту строчку guard let flowLayout = myCollectionViewOutlet.collectionViewLayout as? UICollectionViewFlowLayout else { return }
>>1350512 Вакансии, котоыре висять дольше месяца - мониторинг рынка. Проект по факту укомплектован, а ищут дополнительного дурачка, который будет знать всё и просить копейки.
Сколько гуглю не могу понять почему вквебью отдает JavaScript execution returned a result of an unsupported type, можно как нибудь evaluate подробнее вывести ошибку?
>>1350450 У всех остальных нормальный TOTP. Даже у ебучего вконтакта. А у блядского иппла надо сраный айклауд включать и симку оформленную на свой паспорт палить. Это пиздец какая дырень.
>С той лишь разницей, что тебе не надо качать левое приложения для получения кода. Это самое левое приложение я могу на любую систему поставить, и даже данные забекапить. А симку не могу. И айфон не могу.
Я понял что 3 года опыта а тяну по скиллам на джуна с одним годом, знания очень раскиданы и пиздец короче, например с юай кодом вообще не умею работать и прочее.
Как все знания упорядочить, какую книгу начать читать что по порядку будет тематика, но не для ньюфагов Также как и где почитать как с нуля правильно строить приложение по правильной архитектуре, потому что блять я всегда приходил в компанию на готовый проект и сидел либо на небольших фичах, либо на багфиксах, самостоятельности никакой нет, а страх с нуля делать - пробовал, какое-то говно уровня васяна делаю и это никак не тянет на 3 года опыта моих
>>1351138 Выбери тему и пили петьпроект может даже под мак и учи свифт. Всякие юай это все не то. Надо систему учить, язык, работу с файлами, сетьевые протоколы. Книгу по линю почитай.
>>1351259 Так я работать с ней умею и прочее. Проблема в том что знания раскиданы, на одной работе там верстал менюшки и прочее, на другой немного сеть ковырял и тд, в итоге всего по немногу и поверхностно. А не глубоко
>>1351268 Ок, спасибо, я помню открывал ее, казалось какой-то усложенной с водой без практики, попробую дрочить по вечерам
Аноны, объясните мне почему xcode на прошке не задействует все мощности или как это включить? Уже искал такое - не нашел. Сториборы висят, архивы архивируются, почему он даже не пыхтит? Зачем он все делает на минималках?
>>1351562 Вопрос был всё же в иной плоскости. Анон хочет стать на путь развития до лида тут. Да и юи это верхушка айсберга, как я себе представляю. Чтобы у тебя на экране был шустрый юи надо всё вот это уметь.
Как можно освободить главный поток, если несколько сервисов, находящихся на разных очередях, многократно считывают одни и те же данные у одного объекта?
>>1351568 > Анон хочет стать на путь развития до лида тут. Я об это вообще не писал, мне не до лида сейчас, мне бы снова стать крепким миддлом, а потом и сеньером.
>>1352373 > освободить главный поток, если несколько сервисов, находящихся на разных очередях А главный поток чем занят? Может тебе вообще просто CPU не хватает? Попробуй очередя с сервисами запускать с низким приоритетом, или добавь искуственную задержку между считываниями (миллисекунды хватит).
>>1352443 Ничего в этом сложного нет. Доки. Если не понимаешь - читай внимательно. Не укладывается в голове - читай еще больше внимательно. Некоторые вещи приходят спустя время. И конечно же создаешь проект и практикуешься с маленьких шажков до больших. Это ласт пункт очень важен.
Я тебе это говорю блять как человек, который без всяких ебучих курсов вкатился с нуля. Игнорировал год доки, в итоге хуевое время.
>>1352443 кстати да, на rxjava сто пицот статей на медиуме прочитал, годная дока с примерами, видосы вот это все начал смотреть rxswift - дока говно, примеры раз два и все, ну видосы не искал пока
Кто-нибудь имел дело с платежными картами? В проекте используется яндекс касса, но бэкэнд для приложения принимает на вход почти все данные карты, включая энкриптед cvv код, токен, какой-то штамп карты. Просят провалидировать карту и отправить на бэк токен. С апи кассы это как-то совсем не соотносится, может я чего не знаю
мертвый, тамучто никто не отвечает, ибо одни вкатывальщики
вот вкиньте мне пример хорошего mvp на ios ? спрашивал best practicies/typical mistakes - никто не скинул (и я словил крешей например с data race condition) отдельная тема как фиксить креши - в фабрике валятся вообще не понятные данные, ни стектрейса понятного. ничего. Смотрел видос с wwdc - чел советует определять креш по адресу памяти! типо, вот у меня глаз наметан - это memory curruption, вот я охуел
>>1356613 Для iOS < 11 корневая вьюха просто игнорит это свойство - делай свою сабвьюху, лепи ее к краям корневой, ей уже ставь отступы и закидывай всю лапшу в нее. Для >= 11 используй directionalLayoutMargins с viewRespectsSystemMinimumLayoutMargins.
>>1356761 Оно устанавливает дефолтные значения где-то между viewDidLoad, в котором ты скорее всего свои пытаешь установить, и viewDidLayoutSubview. Если закинешь их в последний метод - скорее всего заработает.
>>1356783 Я не байтодрочер чтобы сточить заборы, когда можно в пару кликов сделать. Я же скрины прилепил, потому как на них весь "код" По поводу отступов так и есть, в viewDidLayoutSubview уже переопределенные значения по 16, вот пидорская шлюха
>>1356793 >Я не байтодрочер чтобы сточить заборы, когда можно в пару кликов сделать. Я тебе так скажу. Ты либо сразу отучиваешься от этой хуйни, либо наживаешь несколько геморройных шишек на анусе, а потом все равно отучиваешься.
>>1356837 Ну пробовал я пару раз избегать сториборды, возвращаешься в свой проект и начинаешь линейно скролить файл и вычитывать где нужно что поправить. Потом попробовал максимально возможно в сторибордах рисовать, в особых случаях естественно кодом. В этом случая, возвращаясь в забытый проект, довольно таки быстро получается найти искомое место так как поиск не линейный, а по абстракциям, да и в файлах порядок, удобочитаемо и по существу. Когда я должен набить шишку?
>>1356885 Про минусы http://lmgtfy.com/?q=why+i+do+not+use+storyboard Чтобы не было лапши в коде просто определяешь размещаешь вьюху и устанавливаешь констрейты в двух местах: layoutSubviews для вьюх и loadView для контроллеров. А конкретные свойства с помощью ленивой инициализации: >>1356885 Про минусы http://lmgtfy.com/?q=why+i+do+not+use+storyboard Чтобы не было лапши в коде просто размещаешь вьюхи и устанавливаешь констрейты в двух местах: layoutSubviews для кастомных вьюх и loadView для контроллеров. А конкретные свойства делаешь с помощью ленивой инициализации: lazy var randomView: UIView = { \tlet view = UIView() \tview.backgroundColor = .red \tview.layer.cornerRadius = 10 \treturn view }()
>>1339184 ГУГЛИШЬ ПРОБЛЕМУ НА ИНГЛИШЕ @ ПЕРВАЯ ССЫЛКА НА СТЕКОВЕРФЛОУ @ В ПЕРВОМ ЖЕ ОТВЕТЕ ИСЧЕРПЫВАЮЩЕЕ РЕШЕНИЕ ПРОБЛЕМЫ С ПРИМЕРАМИ КОДА
ГУГЛИШЬ ПРОБЛЕМУ НА РУССКОМ @ ПОПАДАЕШЬ НА ФОРУМЫ ЭПОХИ WEB 1.0 ПРАВИЛА ФОРУМА НА ПОЛ ПЕРВОЙ СТРАНИЦЫ @ ЗАПРЕЩЕНО ПИСАТЬ КАПСОМ, КРАСНЫМ ШРИФТОМ, ШРИФТОМ БРАЙЛЯ И УКРАИНСКИМ ЯЗЫКОМ. ЗАПРЕЩЕНО ОБСУЖДАТЬ МОДЕРАТОРОВ. ЗАПРЕЩЕНО СОЗДАВАТЬ НОВЫЕ ТЕМЫ. ЗАПРЕЩЕНО ОТВЕЧАТЬ ТЕМ У КОНО КАРМА МЕНЬШЕ 9000 @ В ОДНОМ ЕДИНСТВЕННОМ ОТВЕТЕ ПТШУТ, ЧТО ТАКАЯ ТЕМА УЖЕ ОБСУЖДАЛАСЬ И ПОСЫЛАЮТ В ГУГЛ
Как же хорошо когда все тихо. Сегодня спустя месяц вспомнил как ебашутся константы ко вьюшкам, прилепил еще пару, но под все юзеркейсы придется думать и думать, если уж дальше углубляться в построение через код.
С 16 марта уволняюсь с текущей РАБоты и пробую летом устраивается на ждуна. Нужно будет обжс подраздротить.
>>1362497 Сам я сделал уже дохуя чего, но это всё говнокод.
Хочется посмотреть на то, как реальный практикующий программист называет классы, выносит экстеншены в отдельные файлы, грамотно применяет MVC, вот это всё.
>>1362880 >Хочется посмотреть на то, как реальный практикующий программист называет классы, выносит экстеншены в отдельные файлы, грамотно применяет MVC, вот это всё. Ты троль? Берешь и пишешь в гит - ios rxswift + another technology. Все.
>>1362880 Не обращай внимания на этих лопухов, они считают должным ответить хоть что-нибудь. Сам перелопатил немало проектов, пару приёмчиков перенял из каких-то проектов, но чтобы прям эталонные, на которые можно равняться во всех смыслах - не видел, но интересно было бы взглянуть. Так что два чаю этому реквесту
Нахуя нужон shared, если сделав все статичным, будет то же самое? Это я про синглтон, в обоих случаях он живет весь цикл приложения, ленивую инициализацию в счет не берем, так как она для подгрузки в синглтон данных, условимся что это нечастый случай.
>>1364367 > Это я про синглтон, в обоих случаях он живет весь цикл приложения А потом ВНЕЗАПНО оказывается что тебе всетаки нужно два разных объекта (поменялись требования) и у тебя весь код по пизде идет. shared это попытка сесть на два стула - у тебя с одной стороны есть синглтон. А с другой он какбы и не синглтон тащемта, так как ты всегда можешь создать и второй не shared объект, если вдруг нужно. Если тебе нужна статика (тебе кажется что так красивее интерфейс класса) всегда можно обернуть работу с shared в методы класса. Тогда у тебя будут методы класса для работы без явного получения ссылки на shared, будет возможность получить shared если тебе удобней работать с именно объектом (это нужно для DI, например) и будет возможность создать не синглтонный объект с специфическими настройками, если нужно. И выбираешь что больше подходит под конретную задачу. Швабодка.
завезли ли в appstore нормальный install referrer ? читаю тут про firebase диплинки и тут написано https://firebase.google.com/docs/dynamic-links/ios/receive#set-up-firebase-and-the-dynamic-links-sdk >These methods are called when your app receives a link on iOS 8 and older, and when your app is opened for the first time after installation on any version of iOS. >If the Dynamic Link isn't found on your app's first launch (on any version of iOS), this method will be called with the FIRDynamicLink's url set to nil, indicating that the SDK failed to find a matching pending Dynamic Link. Ничего не понятно. Типо после установки вызовется метод, но гарантии что в нем получим диплинку по которой установили апп нет ?
Есть ли среди нас байтодрочеры? Глянул одну статейку и подумал, а ведь в iOS вполне можно обходиться без подов. Например зачастую в проекте аламофаер используется на 10% и вполне заменяем пару функций, использующих родный апи. Смотрю даже кеш какой-то есть, и кингсфишер можно заметить написанием своей функцией под свои нужны. Профит в том, что потратив время эквивалентное изучению документации пода, можно написать свой велосипед который кастомизируем, и даёт преимущества тем, что прокачиваешься в использовании родных возможностей и написании велосипедов. Всякие snapkit тоже по-моему не так полезны в большинстве проектов, только добавляют слой неизвестной работы в проект, преимущества это меньше кода и гарантия что не забудешь в очередной раз перевести переменную в фолс. Собственно дискас
>>1365412 >аламофаер Не данный момент не нужен, действительно лучше написать свою обёртку вокруг NSURLSession. >snapkit тоже по-моему не так полезны в большинстве проектов VFL или лейаут фреймами — это боль. Так что он скорее полезная вещь. Но вопрос: а причём тут байтодрочеры?
>>1365492 >Не данный момент не нужен, действительно лучше написать свою обёртку вокруг NSURLSession Ты так сказал? А где я буду логи с респонсов просматривать, уеба. А?
Аноны, хочу пойти на курсы по Swift, около полугода изучал со сам, но далеко не все получается понять самому. До этого никогда не занимался программированием. Может быть кто-нибудь ходил/смотрел именно с преподом? Дс.
>>1370328 Нет, можно по-другому, через apple configurator устанавливаешь приложение на айфон, оно сначала скачивается тебе на комп во временную папку какую не помню - гугли в виде ipa - открываешь как zip архив
Ищу что отвечать на "export compliance" при сабмите приложения которое общается с сервером посредством https. По интернету гуляют предположения о том, что нужно указывать yes и отправлять этот "year-end Self Classification Report", другие пишут, что если приложение использует только https, то его можно классифицировать как 5D992, что освобождает от этого репорта. Но в обоих случаях люди пишут с непоколибимой уверенностью. В рунете об этом почти ни слова. Ладно я с дохлым английским не могу в этом всем разобраться, НО КАК люди с нативным инглишем не могут разобраться в этих своих законах, и почему эта проблема так малоизвестна в рунете? Ведь на кону выпил приложения из апстора
>>1370644 >Ведь на кону выпил приложения из апстора Ты так пишешь будто это что-то ужасное. Ну уберут его из стора, поставишь галочку в нужном месте и снова отправишь на ревью.
>>1370650 Да, но если ты поставишь yes то это уже твоя проблема а не еппл, для чего эта галочка и нужна (эпплу прикрыть свою жопу). В магазин приложуху отправят (если пройдет ревью). Репорт нужно (в некоторых случаях) отправлять тебе, эплу на него похуй. Когда говорят что при https отправлять не нужно подразумевается что ты выбираешь пункт yes (типа отправишь) но ничего не оправляешь потому что не нужно. Ну и если ты не гражданин США то тебе наверное в принципе похуй на это, покрайней мере на уровне неуловимого Джо.
>>1370644 Я про это писал в прошлом треде. >>1370743 Тебе нужно отправлять письмо в департамент промышленной безопасности США. Можно ли емейл — не знаю, США это отсталая страна с факсами и чеками. Тем более федералы.
>>1370952 >>1374106 Вы мне лучше скажите, хуле погромистов начального уровня нет, я готов прямо сейчас человек пять-шесть взять, причем вообще с нулевым опытом, научить их и обучить. Но людей вообще нету, за последние полгода хаэры привели только двух жалких школьников, которые не смогли даже пояснить разницу между object type и value type. Хотя казалось бы миллионник. А от пэхапистов и дотнетчиков отбоя нет.
>>1374761 если ты в котосибирске и изучал программирование не только по туториалам "напишем приложение вместе с Дашей за пять простых шагов", то пиши на [email protected]
Вообще, это уже не смешно нихуя. Что ни пост или тред, то нытье про работу и как вкатиться. Добавьте перед шабкой в перекате, если он будет, что работы нигде нет и вкатиться никак нельзя, чтобы совсем прохожих не было.
>>1374812 А тематические треды нахуя по-твоему? Пусть лучше будет полный тред ведроебов вроде того в начале треда с вопросами уровня свифт-гайда, чем "как вкатиться и че работы нету)" В конце концов есть же неподражаемый мы вам перезвоним для такой хуйни.
>>1374847 Покупать мак, покупать аккаунт. Учить свифт, учить сдк, учить обж-с хотяб в общих чертах. Сидеть на сухарях на джуне или на чёрном хлебе на мидле ещё долго потом. Работы для синьеров нет.
>>1374847 Я таких сразу на собесах валю, что-то типа owned & weak, а если такие вопросы отвечают, то задаю по типу как в протоколе объявить тело методу. Вкатывальщики сразу сыпятся и я их посылаю нахуй.
кстати, няшки, у меня тоже вопрос я тоже вкатывальщик но не к вам, я ваннаби джаваскрипт макака
вопрос. говорят, что приложухи под айфоны легче монетизировать чем под андроид, но даже на нативном реакте если без говноэкспо чтобы их строгать нужен мак. эппл я терпеть не могу и вестись на такую гнилую разводку не буду. мой вопрос, реально девелопить и публиковать их (я знаю, они берут анальную плату, но тут ничего не поделать) имея например спираченную макось на виртуалке?
>>1374861 >Я таких сразу на собесах валю, что-то типа owned & weak, а если такие вопросы отвечают, то задаю по типу как в протоколе объявить тело методу. Тебя в мидлы неделю назад перевели, а ты джунов собесишь?
>>1374976 По-моему наоборот, ничего сложного. Как weak только быстрее и добавляет ответственности, полезно при проектировании: если что-то упало из-за нее, значит неправильно спроектировал.
Аноны, подскажите пожалуйста. На данный момент являюсь веб-макакой. Хотелось бы сменить сферу деятельности, а именно - изучить swift/object-c.
Суть вопроса: насколько принципиально наличие последней версии macOS для начала программирования? Смогу ли я нормально заниматься под Sierra, например?
Сколько байт занимает свифтовый инт в памяти? это же структура, то есть там помимо самих 64 бит данных еще какая-то параша хранится? Как в свифте хранятся тела методов класса? Они дублируются для каждого экземпляра, или все экземпляры одного и того же класса + все потомки при выполнении метода берут код из одного и того же места?
Блять, не могу понять, как мне передать данные из одного контролера в другой используя онли делегейт. Зачем мне этот сегуе? Я собираюсь высчитывать ежимилисикундно данные и пихать их в другой контроллер.
Большинство туторов только на сегуях блять. Как мне получить инстанс Б класса, чтобы в А я смог его уже приаттачить и пользоваться заимплементированным методом? Уже 1 час сижу и охуеваю.
>>1380786 Segue - это переходы в IB, они показаны стрелочками. Если ты тот чел выше, то можешь увидеть, что встроенный контроллер тоже такую имеет. Соответственно, прежде чем он будет встроен и показан, будет вызван метод prepareForSegue, в котором ты можешь получить встроенный контроллер, присвоивать ему делегата или вообще сохранить и крутить как хочешь и где хочешь.
>>1380786 Segue это просто способ получения ссылки на второй контроллер в первом. Если ты его не используешь то ищешь какой-то другой способ. Например, если один контроллер создает второй то веставляешь сразу при создании и делегата. Или это может какая-то третья сущность делать. Или сделать так чтобы контроллер не отсылал напрямую инфу в второй, а апдейтил стосяние модели. А второй уже получал эту инфу от модели (через наблюдение или еще какю хуйню).
>>1380786 Если ты ежемиллисекундно передаешь данные из одного вьюконтроллера в другой, то у тебя что-то сильно неправильно сделано. Какие данные ты передаешь, в чем их смысл? Если это что-то, касающееся данных, то передавать их надо через модельную часть (особенно если у тебя видно только второй вьюконтроллер). Если у тебя видно одновременно оба вьюконтроллера, и ты, например, на первом таскаешь какой-то крыжик, а второй от этих перетаскиваний меняется, то тут я бы данные передавал бы либо через контейнер, либо как и просят через делегирование. Ебанул протоколы, связал два вьюконтроллера на уровне контейнера или аппделегата, и погнали.
>>1380852 Если ты тянешь одну вьюшку и это приводит к тому, что двигается другая вьюшка, то этими перемещениями должен заниматься тот контроллер, на котором они обе лежат. У тебя три контроллера: А, В и R. R корневой, А и В дочерние. Соответственно, R может иметь прямые ссылки на А и В (как минимум, потому что он их создает и на себя кладет, неважно, руками или через сегвеи сториборды). В этом же месте, где все создается, ты можешь назначить R делегатом вьюконтроллера А.
В итоге: Ты тянешь вьюшку контроллера А, контроллер А получает об этом сообщения. Он отправляет данные своему делегату (контроллеру R). Контроллер R имеет указатель на контроллер В, так что он может либо передать ему координаты, либо самостоятельно изменить его положение. Как-то так.
Или тебя интересует, как именно в деталях настроить делегирование между A и R?
Спрошу здесь, ибо платформы лучше нету, а разработчики эстеты! Чего такого посмотреть/почитать про паттерны/архитектуры, чтобы отшлифовать знания о них. Что-то бодрое и светлое в стиле Стэнфорд юниверсити курсов по iOS
>>1381734 Платина блять. Нихуя хорошего в изучении архитектур нету. Этим ты только тупеешь и превращяешься в жирного спесивого тим лида щегаляющего понятиями и унижающего джунов. Учи язык, расширяй кругозор, исследуй новые непроторенные пути.
Ну что господа. Это случилось. Я нашел работу Джуном в 33 года. Спустя 2 - 3 года обучения, я таки получил офер в продуктовую компанию. В нашем городе, это одна из лучших продуктовых компаний. Итак, коротко о том, как это произошло. Я начал учить программирование со Swift 2 у Скутаренко по марафону. После я понял, что этого мало, и начал учить Обж-с. Выучив у того же Скутаренко Обж-с, я получил первое тестовое задание от небольшой компании, и успешно его завалил. Потому что тогда вообще не знал ничего о верстке приложений. Дальше, я подтянул этот компонент, и заказал курс на Юдеми по Swift 3. пройдя половину, я начал пилить свое приложение, и получил другое тестовое задание, о котором я когда-то тут писал. (жестами надо было квадратики расширять и поворачивать), его я тоже благополучно провалил. После этого, я нашел эту группу, пересмотрел несколько Жениных уроков, которые охватили некоторые мои пробелы, и их удалось заполнить. После чего я подал резюме в эту компанию, получил тестовое, и прошел его до стадии собеседования, которое благополучно завалил ). Но руки не опустились, я начал изучать теорию, практиковался, помогал другим ребятам тут в группе и пытался во всем разобраться. Через пол года я подал резюме в эту компанию повторно. Они дали другое задание, и я его опять завалил, но мне дали время его переделать. Я переделал, и меня снова пригласили на собес. На этот раз на собесе мы договорились, что я перепишу все на VIPER, и с небольшими вкраплениями rx.swift. И как вы могли догадаться я снова облажался ). Но тим лид предложил еще подтянуть знания, указал какие и через 2 месяца я снова получил тестовое, сделал его и о чудо. Наконец-то я все сделал правильно. Так я получил свою первую работу junior IOS разработчика в 33 года. Тем кто дочитал до этих строк. Пробуйте и никогда не сдавайтесь. У вас все получится, если вы будете этого очень сильно хотеть. Да, стоит отметить, что подавал я резюме на все вакансии, будь то Jun, Middle или Senior. В том числе и в компании куда меня взяли Джуном вакансия была Middle. Всем удачи. Спасибо всем кто помогал, и спасибо Жене за уроки. Их я еще буду смотреть непересмотреть
>>1381832 Охуеть у вас тут порядки, с джуна спрашивают за вайпер и реактивное программирование. У нас на яве спросят про хешмапу, спринг/хибернейт, если ответишь то ты принят и сразу вперед, разбираться в каком-то говне, где нету ни спринга ни хибернейта. Я пытаюсь вкатываться в swift, пока конторы даже не собеседовали глядя на год опыта, но на фрилансе периодически удается взять проект средней сложности, где хватает свифта и mvc если аккуратно. Что нужно для ios мидла на удаленке? >>1381806 Начал читать objc - app architecture, авторы котируют только mvc и mvvm-с, остальные архитектуры в их книге, как они говорят, сырые. Про чистый код они тоже упоминают >VIPER, Riblets, and similar patterns are efforts to bring Robert Martin’s “Clean Architecture” from web applications to iOS development >Attempts to bring “Clean Architecture” to Cocoa usually claim to manage “massive view controllers,” but ironically, do so by making the code base even larger. Алсо сколько бы я не спрашивал за вайпер, в интернетах мало кто понимает, что одной из главных причин выбора такой архитектуры - полное покрытие тестами. В гайдах всегда реализуются по разному, в одном небезызвестном гайде даже выкинули ключевой слой лол. Главное что VIPER
Получается, в ios две с половиной архитектуры: mvc, mvvm-c и viper в супертынпрайсе?
>>1381852 >Что нужно для ios мидла на удаленке? Вазелин. Готовность писать допотопный код. Готовность ебаться в легаси говне. Готовность быть пидарнутым за факап команды, так как удалёнщик всегда крайний.
>>1381806 Бтв у меня есть первый пикрил. Ну такое себе. Архитектура разная в каждой кампании и на ней не стоит зацикливаться. Офк эти выводы были сделаны спустя пару месяцев дроча архитектур.
А и еще вайпер это переделанная ссанина людей, которые перекурили как раз этого Мартина. Я представляю его идеи и реализовывал их, но что творится в иосе это пиздец.
Жалко единственное что впадлу делать веак референс и создавать отдельный класс презентер для каждого контроллера. Пока планирую ебнуть синглтон Repository который будет менеждить мапить данные и в каждом контроллере этот инстанс дергать.
юз кейсы и интерактор такой же остается, потому что уже привык. + Локал.
>>1381852 >Главное что VIPER Я юзаю вот VIPER от рамблера, немного видоизмененный. В генерамбе свои темплейты поправил чтобы не ебаться с сторибордами, а все делать как человек через ксибы и мне норм. Книга у них тоже ничо, чисто для знакомства с их видением вайпера.
>objc - app architecture, авторы котируют только mvc и mvvm-с Да, тоже заметил, но в целом книгу стоит хотя бы прочитать, чтобы иметь представление.
>>1381864 Ну так Мартин пишет не про то, какую ты архитектуру сделаешь, а какие свойства архитектуры помогут тебе в дальнейшем и как эти свойства проверить и найти. В целом книжка полезная, особенно если ты пишешь проект у которого периодически меняются требования.
>>1381865 >А и еще вайпер это переделанная ссанина людей, которые перекурили как раз этого Мартина. Ну это и хорошо: разбивка на слои + четкие границы и разделение ответственности. Получается недурно, хотя для приложения их 2х экранов оооочень жирно и избыточно.
Короче все эти проповедники вайперов это перекатщики с других ЯП. С шарпа или Явы и им просто лень переучиваться. Те кто сидел изначално на иос на хую вертели всё это говно. Я ещё понимаю mvvm высрали бородатые обжективсишники которых просто заебало возится с мутабельностью. Но риал пацаны. Свифт решил этот пиздодроч с выбором архитектуры. Как тут правильно заметили всё пишется под проект. Выбирать какую то архитектуру которая накладывает кучу ограничений ещё не зная что предстоит писать это хреново.
>>1381875 Ахуенная аргументация. Кроч пацаны, функции первого порядка, лямбды, замыкания, DI — это все хуйня из другого мира, нам бы писать лапшу да дрочить байтики, вот это работка, да.
>>1381878 Чувак я сам сижу сейчас на вайпере. И я 100 процентов говорю, что вайпер в конечной своей точке когда уже пора реализовывать то что он так красиво описал на уровне протколов скатывается в ёбаную легаси ссанину. Так что да. Такие дела. Слишком это всё теоретизированная залупа и во многом бесполезная.
>>1381880 Значит, ты делаешь неправильный вайпер со смешением слоев. Но без кода это все разглагольствования, а код из нас никто не покажет, так что откланиваюсь.
>>1381872 >Ну это и хорошо: разбивка на слои + четкие границы и разделение ответственности Это никогда не хорошо.
Слои выбираются командой, архитектура избыточна. В стиле от баду вайпер - ссанина потому, что они исковеркали сами идеи и добавили свои.
>>1381878 DI — это все хуйня из другого мира, нам бы писать лапшу да дрочить байтики, вот это работка, да. Мда, сразу вспоминается ебанина с ДИ в ведройде. Когда я узнал что тут такого нет это был кек. Особенно я не понимаю популярность рхСвифа. Рх нужен только в ведройде, потому что там нихуя нет. Но тут сука и так GCD + операйшины есть. Мапы редюсы встроены в язык. Можно продолжать вечно.
>>1381887 >Мапы редюсы встроены в язык Только не в язык а в стд либ. Всё верно. Стд либ рулит. Всё то время которое уходит на изучение каких то левых архитектур стоит посвятить на стд либ, потому что это склады гениальных идей, и её можно учить годы.
>>1381961 Так это в худшем случае, в лучшем, если у лида есть мозг он идёт к дяде сисплюсплюснику и просит реализовать всё это говно на бекенде и отдать ему айпи к которому он может подключить свои блять щупальца с которыми он нихуя не знает что делать.
>>1382002 Ты бы написал хоть пару моментов какие проблемы возникали при вайпере, какая там у тебя возникает легаси ссанина и где, а то пока звучит как беспруфный кукаер или как подметил анон выше - шизка.
Суть такова: IOS должна запускать приложение в фоне, а в AppDelegate должно отрабатывать 2 функции.
1) Загружает данные из CoreData в массив; 2) Загружает данные из Firebase и сразу проверяет их на вхождение в массив. Если полученного значения в массиве не найдено, то срабатывает Push.
Проверяю работоспособность на эмуляторе через Debug -> Simulate Background Fetch.
В результате корректно отрабатывает только первая функция, а загрузка из Firebase может либо вообще не запуститься, либо загрузить только пару значений. Для того, чтобы всё нормально сработало нужно симулировать Fetch раза 3-4 подряд.
Ребят, как обстоят дела на рынке ios'а? Щас хочу выбрать отрасль, где бы хотелось развиваться и работать поитогу. Выгодно ли будет вкатиться в свифт? Работку потом после универа на джуна смогу найти например? Проясните мальцу.
>>1382473 > Пишу сейчас на 70 минимум, думаю на 80 напишу точно. Бери выше, там делать нечего. ЕГЭ это самое легкое, что может быть в жизни. В вузе тебе придется хуярить еще жесче. Особенно советую мат анализ, ибо я на 1 курсе проебался с этим.
>Есть смысл поступать? Без корочки далеко не уедешь. Мб преподы норм попадутся.
Не совсем понимаю как асинк + синк может вызвать дедлок. Дедлок - это же когда один поток ожидает действие другого, а другой - действие первого. На картинке мы же просто говорим выполни асинхронную операцию, а в ней синхронную с чем-нибудь. Я не понимаю.
>>1382758 Строчка со синк ждет пока тред не освободится, но тред не освободится, пока все строчки в теле функции не отработают. В первом примере дедлока не будет, кстати.
>>1382828 потому что в очереди queue должен выполниться код внутри SYNC блядь, который тоже в той же очереди. А там: > тред не освободится, пока все строчки в теле функции не отработают.
Чет я застрял на том как ебнуть делегейт из рутового контроллера в ребенка. Получается из ребенка можно послать в родительский посредством prepeare у родителя, но чтобы заинитить прераре и у ребенка - не получится.
>>1382870 Иди читай что такое делегат, наркоман, а то складывает впечатление, что для тебя он нечто большее, чем просто объект, соответствующий протоколу. func prepare...() { let parent = self let child = segue.destination parent.delegate = child child.delegate = parent }
>>1382920 Нет, оказывается когда чайлды приаттачиваются они вызывают к прераре у рутового метод и в нем уже можно проинитить делегейты для каждого контроллера.
>>1382845 погоди async запускает bg тред. внутри async что-то делается, и ставит на запуск sync. async стопается. где-то паралелльно отрабатывает sync разве не так? почему async должен ждать sync ?
пипец, купил компухтер 2017 года аймак, самый младший. Короче мой старенький толстенький аймак ничуть не хуже это точно. Ну на видюхе типа больше метров в три раза чем на старенькой радион. Но это никак не ощущается. А некоторые анимации на старом компе заметно плавнее работают и сглаживание пизже. Не говорю даже что на старом компе у меня 4 ядра а на новом всего два. Хоть и турбобуст типа есть. Но у меня ощущение что ядра всё же важнее. Короче новые аймаки это по итогу этакие ноутбуки на ножках. Короче не понимаю почему муавей не могла стать на старый комп никак. Эпл в очередной раз развела анона на бабули.
Ебаный врот. Что за ебанутые люди не смогли за столько времени задать очевидные вопросы.
1. Хочу стартовую позицию tab bar контролера поменять. Не с 0 чтобы стартовал, а с 3. 2. Хочу чтобы при клике на один из индексов он мне не показывал контроллер, а я создавал сам его программно.
В итоге я нашел как инитиал кастомный сделать, но чтобы он не открывал контролер - не стал лезть. Решил руками написать, точнее уже написал. Ток пока словил защеку и не смог это захуярить в сториборд, жалуется на класс селл, хотя @IBDesignable поставил.
Зачем нужен xcrun никак не пойму? По описанию man что-то не очень понимаю зачем это нужно, может мудрый анон пояснит? Запускаю команды без xсrun и все всегда работает
>С чего вкатываться?
Со swift book - книжка валяется в интернете.
Стоит упомянуть про складчину иос господ - телега.ми/iOSBooks - валяется огромное количество книжек, хоть обмазывайся.
Есть еще одна, из какого местного чатика https://drive.google.com/drive/folders/0B25xie8pit__amNPc1N6OXVFaEU - но там больше старых валяется. Единственный плюс так это обжс.
>Не люблю читать книжки я долбаеб
https://www.youtube.com/playlist?list=PL9lXw_XXeiWQGrY5dl0IjFI7tOw_nfI91 - лучшее что есть в тырнете.
По видяшкам так же рекомендую:
https://coursehunters.net/course/ios-12-i-swift-4-2-dlya-nachinayushchih-200-prakticheskih-tutorialov
https://coursehunters.net/course/ios-12-i-swift-4-ot-novichka-do-professionala - перед стенфордскими курсами можно глянуть. Тоже найс.
После окончания вышеописанного заебись будет построить свое приложение. Например очередное Weather или же ImageGallery или что-нибудь свое.
https://marcosantadev.com/coredata_crud_concurrency_swift_1/ - хорошая серия статей по работе с CoreData
По многопоточке есть охренные рускоязычные статьи, автор разбирает практически ВСЕ, чего даже не найдешь на медиуме
https://habr.com/ru/post/320152/
https://habr.com/ru/post/335756/
Полезные ресурсы:
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/
Перевод документации базовой
https://swiftbook.ru/content/
Материал на английском:
Очень подробно все рассказывает и расписывает
https://rutracker.org/forum/viewtopic.php?t=5445071
Devslopes. Начинал с них, рисуют приложения при тебе, особо не углубляются в детали, но как пример можно посмотреть. Сам к ним вернусь, как побольше поучу.
https://coursehunters.net/course/udemy-ios11-swift4
ласт