Swift - Swift - это новый язык программирования для разработки приложений на iOS, OS X и watchOS, который сочетает в себе все лучшее от C и Objective-C, при этом нет ограничений в совместимости с C. Swift использует паттерны безопасного программирования и содержит современные функции, которые помогают сделать программирование легким, гибким и увлекательным.
Платина: Что выбрать? - свой проект - swift, работа - objective-c.
>>630651 Ок, создал проект с кордата, надо будет прочитать про него. Пока что так примерно накидал интерфейс. Алсо почему в гугле используют несколько навигейшн контроллеров?
>>630670 Короче создаю модель AppItems. Вот вопрос, если у меня у каждогопараметра будет фиксирован лишь тип предмета, но время добавления и прочее свое. То в модели реализуем список массива с типом предметов, верно?
>>630867 Т.е. по сути я там захуярю массив с фиксированным списком вещей, а ту же дату как мне брать? Если она каждый раз разная? Берется vc там в окне вбивается дата, затем она тупо будет в объект вписываться, в объект модели получается ее надо будет писать?
Я просто хочу правильно сразу освоить все модели создания.
>>630926 Если я правильно понял и ты используешь кордату то никакого массива нет. Ты в модели данных создаешь entity (сущность) которая соответсвует твоему объекту. Тоесть у него там поля - тип предмета, дата, и остальное. Также крайне желателен уникальный индентификатор каждому объекту, или способ однозначно отличать друг от друга. Соотвественно для этого объекта создаешь класс отнаследованый от NSManagedObject, и связываешь его с сущностью созданой в модели данных. Соотвественно у этого объекта будут пропертя как у сущности - тип предмета, дата, и остальное. Когда тебе нужно добавить - ты создаешь новый объект выставляешь пропертя и все. Если нужно что-то изменить - достаешь нужный объект (вот тут-то и нужен уникальный идентефикатор, но можно конечно и по датам искать и т.п.), изменяешь пропертя и все. Если нужен список объектов то делаешь NSFetchRequest по имени сущности получаешь массив и все. Можно настроить ДЕЛЕГАТ (NSFetchedResultsController) - он будет следить за твоими сущностями и получать сообщения когда добавляются новые, изменяются старые или там удаляются.
>>630985 >ты используешь кордату то н Я еще ничего не использую, я еще даже не изучал кордату, думал научусь это делать когда буду это приложение для себя писать. но спасибо за пост. Попробую так потом переделать
>>630992 Блин, а оказывается это легкая фича, на юутубе глянул, по сути создаем ентити с описанием данных, по нему создается самый обычный класс данными и так хуярим
>>631013 а почему нельзя? Компилятор вроде не должен ругаться, должен только предупреждение выдать?
ну а вообще у теюяarrayNotes видимо просто массив. Ты в него можешь запихать все, что пожелаешь. Если не нравится такой исход то попробуй Array<YourClass> то есть генерик
>>631013 Это не лишний указатель, а каст к типу. Такого не должно быть, ты там что-то напутал наверное где-то. Также индекссубскрипт используй: notes = _arrayNotes[indexParh.row];
>>631238 Я к тому, что никаких ошибок без каста к типу не будет. Только если ты используешь типизированный массив, то компилятор тебе подскажет, что где-то типы не совпали, но скомпилировать и исполнить даст без проблем.
>>630985 Если кордата за меня пилит модель, то мне не надо доп модель создавать? Допустим в модели там 3 параметра. 1 стринг, 1 инт и 1 дейт.
Вот теперь вопрос, я вроде как сохраняю из текстфилда в дату. Но я теперь немног не понял как единственный этот стринг мне впихнуть в тейбл.
Получается мне где то все таик надо отдельно делать еще 1 класс модели, откуда я буду из модели кордаты брать данные и фетчить в какой-то санный массив и из этого массива уже заполнять таблицу??
>>631573 > делать еще 1 класс модели > Пиздец сложно получается как-то, не? Да. По-другому никак такое не сделаешь. Тебе нужна модель данных в оперативной памяти чтобы ограничить запросы к бд. Контроллер может напрямую лезть в кордату и обойтись без класса модели-контейнера, но это не комильфо. Просто тебе же кор дата для твоей изначальной задачи не нужна же. Если ты просто табличку хочешь сделать. У тебя должна быть модель где в каком-то контейнере ссылки на модельки твоих вещей, должен быть тейблвьюконтроллер который таскает модельки вещей из модели-контейнера и отдает их в тейблвью. Это потом уже если тебе нужно чтобы данные сохранялись нужно подключать кордату, и хранить там. Сделай сначала без хранения (тоесть без кордаты). Потом допили хранение на плистах (например) или там в обычных файлах, потом сделай на кордате и посмотри что проще.
>>631793 Круто, спасибо, получается все таки в правильном направлении себе мышление поставил. Алсо еще маленький вопрос. Возникла проблема, раньше когда создавал классы там от вьюконтроллера или тейблвью то генерировался нормальный шаблон типа пика, а сейчас пустая хуита по сути без втюдидлоад, бещ интерфейса наверху и т.д.
>>631974 Короче, почему на видосиках и в книжках при создании Сreate NSManagedObjectSubclass создает только huy.h и huy.m с нормальными пропертями, а у меня создает помимо тех двух еще huy+CoreDataProperties, где и лежат эти проперти, а не в тех стандартных huy.h, это нововведение такое?
Сука, заебали, каждый везде по разному пишет приложения. А ты сиди как даун ковыряйся, одни там добавляют кордаты фреймворк, даже в созданный проект с ней, другие не добавляют. Одни в делегаты прописывают какие-то настройки, другие нет. Один через id delegate в контроллере чето там делает, в соседней статьей вообще все по другому, заебался.
Короче, вот так я сохраняю данные в кордату, правильно блядь или нет? 1 пик 1)Импортирую ебаную пропертю 2)Прописываю эти проперти 3)В экшене кидаю данные в кордату
Мне вообще обязательно везде в пропертях указывать контекст, модел и персистент в каждом классе?
Второе. Теперь я хочу вывести эту парашу в тейбл. Как мне из массива вытаскивать данные? Чтобы я потом их нормально по ячейкам распихал? У меня ненависть от интернета и то как везде разное и противоречивое дается
Cука, а в другом туториале вот так данные пишут, как правильнее будет? и зачем целый метод городили для этого? Господи как все просто было с калькуляторами всякими, а тут сложности начались.
сука пошло оно нахуй все говно ебаное крашится мамку ебал сука мразина рукоблуд ссанина
блядь, делаю все как надо, как написано, пытаюсь сам разобрать нахуй полдня это ебучее говно пытаюсь понять как записать и считать с ебучей кордаты сука пидорасы, везде запутано блядь, пиздец бомбануло
>>632181 >Как мне из массива вытаскивать данные? Пишешь абстрактный класс, от него наследуешь уже реализацию протокола ArrayValuesProtocol и реализуешь функционал чтения. Ну а дальше как и тебе ответили - биндишь к своему протоколу и контроллеру: контроллер делегат и никаких проблем. Не забывай только в dealloc'e вызывать очистку буферов промежуточных, чтобы стэк не засорять.
>>632207 Блядь, обидно, те же алгоритмы и cs я без проблем понимаю, а тут я запутался от изобилия информации.
>>632208 Я вобщем скачал работаю вариант и его и буду редактировать под себя. Правда у них почему то без managedsubclass сделано, я не знаю насколько это критично, наверное все таки я переутомился.
Народ, есть желание ещё одну телеграмм-конфу запилить, без того ужаса, что твориться в текущей? Для обсуждения мобильной разработки, iOS и всего связанного, ну и немного за жизнь кодерскую. Сейчас там срачи, вайпы, мини-драммы, аттеншнвхоринг и прочий флуд. ОЧЕ хочется увидеть здесь настоящих iOS-разрабов.
>>633612 > срачи, вайпы, мини-драммы, аттеншнвхоринг и прочий флуд Это синонимы слова "конфа". Без анонимности нормального общения быть не может. И естемтвенно анонимность его не гарантирует.
>>633617 Да нифига, от админов всё зависит. Если банхаммером ебашить туда и сюда, то может быть останется мало кого, зато конфа будет какое-то отношение к разработке иметь.
>>633612 >Для обсуждения мобильной разработки, iOS и всего связанного Нахуй надо говорить о кодинге не в рабочее время, а обычные вопросы и в этой конфе обсуждают. если нет вопросом - пиздим, просто ты унылое хуйло, посикал тебе в ебальничек. Как ты вообще на борды попал.
>>634588 >не пробовал в рабочее время - работать? this
>p.s. все ваши конфочки хуйня по определению Не соглашусь, обмен опытом полезен. Просто у них состав конфочек из людей, не имеющих отношения к программированию. Совсем не понятно, зачем вообще ссылку на эту конфу постить в шапке треда. Можно было бы лучше ссылку на слаку засунуть (та, что выше была) или даже на слаку cocoa-developers, чтобы серьезно всё было.
>>634599 Хакинтош - это установленная OS X на не-эпловский комп. Вместо девайса можно использовать эмулятор, встроенный в XCode. Я так работал месяца 3-4, пока мне мак не выдали за выдающиеся заслуги (шучу, просто я заебался хакинтошить и забрал комп начальника).
>>634706 Так это ты хуесос тут ноешь, мол конфа хуевая кококо одно говно, надо новую серьехную создавать! Вот и пиздуй в свой петушиный уголок. Есть конфа сиди - не нравится ->уебывай.
>>635683 Если используется воркспейс (это не обязательно, только тебе прийдется вручную подключать библиотеку в проект) то библиотека не интегрируется в сам проект, а хранится где-то отдельно. Таким образом в воркспейс можно добавить несколько проектов и все они будут использовать одну библиотеку. Но уже нужно загружать воркспейс что-бы все подключилось.
Разблокировка по отпечатку пальцаАноним29/01/16 Птн 10:59:08#88№637516
Кто-нибудь работал с LAContext? Все API реально ограничивается методам canEvaluatePolicy / evaluatePolicy? Ничего больше я сделать не смогу (типа создать отдельный образец для моей программы)?
>>637626 Cпасибо, но я разобрался, суть в том что в новом нетворкинге нет такого метода вообще, там юзается сешн менеджер.
Вообще мне нравится урок, интересно такие приложения делать. Но вот беда, я вкатился недавно в кодинг, это нормально что я не понимаю пока как это все работает? В смысле я понял что получаем и получаем запросы типа объектов, но вот как все это по 10 раз в дикшнрис впихивается и прочее - со временем ведь такое пройдет?
>>637624 > извращается с epub на айпаде Ясно. Это справочная документация, а не учебное пособие. >>637608 Официальная документация написана индусскими макаками для индусских макак.
Надо делать айос конфу чисто для айосников, без всяких левых даунов и людей не связанных со сферой айос. Эту конфу окончательно засрали, есть кто возьмется за это или мне делать ее?
Всем привет, я начинающий программист, в качестве тренировки решил создать бесполезное видеоприложение. Есть вопросы касательно сохранения/хранения/доступа к видео, был бы очень рад, если бы кто-нибудь по этому поводу меня проконсультировал. Пишу на swift, но obj-c более-менее знаю, так что хранилище могу написать и на нем. Skype: roba_rus
>>641704 под андроид лишь дауны кодят которые мак не могут купить, а ебать себя жопу до выхода андроид студии им особенно нравилось. короче платформа для долбоебов.
>>642365 Если по честному, Xcode (в плане рефакторинга) сосет у Android Studio, да и у Eclipse тоже. В той же Visual Studio (даже без решарпера) больше функций для форматирования кода.
>>645527 1) Какая связь между языком и конкретным рантаймом?; 2) Это не эпловская реализация рантайма, точно не известно на чём православно-кошерная версия написана; 3) Не понятно почему использован именно C++ - Swift не поддерживает его ABI, всё равно в сишные простыни писать автор видимо из 70-х вылез. 4) Ты ебаное животное, вот.
>>645606 > >https://swift.org/source-code/ >>The code for the Swift project is divided into several open-source repositories, all hosted on GitHub. >https://github.com/apple/swift/ Здесь нету рантайма. Компилятор - да, на крестах. Только на свифте это никак не отображается. LLVM-бэкэнд кстати на крестах написан, на нём же и обжс работал. >Про Objective-C все и так известно К чему ты это вообще написал? У тебя голова через какую пизду работает? >Еблан тут только ты. Я конечно понимаю что ты обычный даун на хайпе, скорее всего далёкий от программирования как и 90% пейсателей под моб. платформы, но не настолько же.
>И что там тогда? Просто куча исходников, которые можно скомпилить в непонятный бинарник? >The main Swift repository, which contains the source code for the Swift compiler, standard library, and SourceKit. А теперь наверни https://ru.wikipedia.org/wiki/Runtime
>>648698 значение из кода очевидно что deyailedser.info Где я проебался, так-то я нигде не проебался. Везде нормально выводит, а в алерт контроллере null, начал гуглить по этому поводу - ответов на стэке нет
>>648744 Значит твой _detailedUserList не существует в момент создания алертвью. Или с .info проблемы. В коде на скриншоте все ок, где-то в другом месте недосмотрел.
>>630631 (OP) Возможно ли закончить анимацию и перейти в completion раньше чем она дойдет до конца? К примеру если у меня вью улетает за пределы экрана мне нужно сделать if и перейти к completion. Как это сделать?
>>653297 Нельзя. Тебе нужно как-то следить за положением вью (KVO например) и когда вью вылезет за экран или просто отменить все анимации, или назначить ему новую анимацию в "правильную" позицию (так чтобы оно не выходило за экран) с очень короткой длительность и правильно выставлеными опциями (основное это включить UIViewAnimationOptionBeginFromCurrentState).
Нуб ИТТ. Хочу сделать проверялку статуса какого-то удаленного сервера, онлаен он или нет, или может данные какие-то с него считывать короткие (как вариант определения статуса). Так вот, как это сделать? Это вообще просто делается или нужно пердолиться ради такой простой, казалось бы, задачи? Гуглом уже пользовался, там нашел НЕХ с названием Reachability, как я понял, она проверяет наличие интернетов, но если эту НЕХ можно использовать для моей цели, то собственно как? Такие дела, пикрандом.
>>654765 Попробуй пинговать. В общем случае это наверное не решаемо, так как сервер может быть не доступен для обычного внешнего воздействия, тоесть все подключения к нему организуются с помощью специальных логин серверов, а напрямую, к примеру, пинг послать нельзя. Нужно в каждом случае смотреть как определять доступность. Может разработчики сервера предоставляют какое-то API для проверки статуса. Reachability вроде не совсем то, так как там проверяется только возможность отослать данные на сервер, но ответ от него не проверяется.
>>654765 1. Берешь любую http библиотеку (http client library) 2. Отправляешь запрос на url на сервере 3. Проверяешь http код ответа (http status code) 4а. Если этот код 200 – сервис онлаен 4б. Если этот код 5хх – сервис оффлаен 4в. Любой другой код – выбирай другой url, этот не годится
Есть ли какая-то вменяемая альтернатива interface builder? Просто это такое говно что даже не понятно, какой даун мог додуматься до такого. Нечитаемые мердж конфликты, куча часов поисков багов из-за одной спрятой галочки. Было бы круто если бы был какой-нибудь фреймворк где в файлах типа xml делаешь разметку, а потом можно было бы его инстанциировать как вьюху.
>>656834 а ты в ксибе попробуй добаввь в контроллер табличку и в ней настрой хидер для этой ттаблички из интерфейс билдера без редактирования непосредственно xml кода.
Ну что вы, ананасы? Я вот в новом проекте полностью перелез на Realm https://realm.io/ Уже полгода - полёт нормальный. На кордате было три проекта - остадочек неприятный остался от кучи прослоек и её стэка. А с риалмом всё работает гладко и с минимумом ебли.
Еще освоил fastlane tools для бетатеста и выливания скринчиков в аппстор - удобная хуитка.
Няши, ответте залетному. Хочу перекатиться на свифт (с жабы), но сильно не хочу терять кроссплатформенность. Есть варианты как можно оборачивать приложения на свифте для винды? Ведро не интересует, мобильными приложениями не балуюсь.
>>663873 Нет. Для этого нужна реальзация фрейморков (foundation, cocoa) под win, а ее нет. Там какие-то хуи что-то пилили вроде, но нормального ничего нет. Есть еще remobjects silver - но там используются системные фрейморки (.NET для win, джавовские для андроида) тоесть общего очень мало.
>>662537 Перекатился наконец с обжыц в свифт, с нетерпением теперь жду выхода 3.0 и кроссплатформенных тулз, потому что про другие языки можно будет забыть.
Как мне сделать в swift файле cast сишной структуры с хитрыми битовыми полями на Array<UInt8> массив? (Очень надо). Битовый размер совпадает. Пробовал и as! конструкции, и withUnsafeMutablePointer - не получается ничего хорошего. Bridge настроен.
Антоны, срочно нужно накидать простенькое приложение, а тут в теме не увидел ни факу, ни ссылок. Мне нужен хороший текстовый гайд по iOS-разработке с примерами в духе "пишем простенькое меню" и т.д., в идеале - на русском. Что посоветуете?
Глупый вопрос конечно, но вот с чего начинать изучение swift ? в книге Усова конечно все хорошо написано , но вот практики там совсем нет . Придумать свое приложение и пытаться его реализовать ?
>>671493 Пробуй написать что-то. Или попробуй пройтись по iOS Programming: The Big Nerd Ranch Guide, только на свифте пиши. Или иди по оглавлению и гугли какие-то статьи по темам на свифте. Смысл в том что чтобы написать что-то нормальное нужно иметь хотя бы приблизительное представление о том про что в той книге написано.
Программач, писал приложения на ведроиде и всякую явасриптовую еботу, надо сделать приложение под айфон, что мне с моим опытом лучше изучать: свифт или обектив?
Склоняюсь к свифту, но переживаю, что по нему не найду достаточно руководств и ответов на стековерфлоу. Как там оно?
Помоги с таким вопросом. Простые приложения писал с использованием сториборда, ну а поскольку не так давно сел за ios, то сразу начал со свифта. Теперь встала такая задача: нужно научиться делать UI без сториборда, а полностью программно, чтоб автолэйаут работал еще норм, со всеми этими констрейтами. Какие есть годные глубокие туторы на эту тему? На свифте. Ну и чтоб информация актуальная была, то бывает что туторы из 2014-ого года уже не работают.
>>672117 Я пришел к тому что все делаю через код, есть корпоративная закрытая библиотека с помощью которой можно накидать интерфейс даже пожалуй быстрее чем с IB и при этом всегда точно знаешь почему и что происходит.
>>671998 Ну, мне не надо знать оба, мне надо одно приложение сделать, понимаешь? >>672264 Не-не, нахуй, подозреваю, что там инфы ещё меньше, чем по свифту.
>>672301 Подскажи хотяб откуда двигаться? Туторы, книги, просто референсы. С IB я пожалуй на среднем уровне работаю, свифт понятен, сам икскод тоже ориенртируюсь.
>>672344 >по свифу есть хороший учебник Пока эппл будут каждые пол года релизить новый свифт, нормальных учебников не будет. >>672537 >яблочный swiftbook Это не учебник, это справочное пособие для индусских макак.
>>672117 ебать. у чувака по верхней ссылке проблемы с тем что у него скролл вьюшка прибита сверху к топ лэйаут гайду, а нужно было просто к верху вьюшки.
бесят такие пидоры. лень разбираться с билдером и начинаете хуярить какоето говно в коде. переебал бы
>>670502 Эх, а бампану-ка я, анонцы. Мне все еще надо наложить эту структурку. Структурка сама себя не наложит. Пока вы молчите, я решил вручную перепедалить весь проект на Objective-C.
>>676628 Что значит "битовый размер совпадает"? У объектов objC и следовательно скорее всего у свифта куча дополнительной инфы (полей). Их нельзя просто кастом превратить из обычной структуры. Можно попробывать из сишного массива (кастишь структуру в указатель на char или что там) собрать CFArray, его скастануть в NSArray (там специально сделано что кастить можно), а уже его скастить в свифтовский массив. Но скорее всего получится полная хуита. Вся проблема в том что массивы в Foundation предназначены для хранения указателей, тоесть в CFArray (как и в NSArray) нельзя положить чары (или инты) а нужны указатели. Тоесть твою структуру нужно кастить не в указатель на чар, а в указатель на указатели на воид. И дальше жонглировать указателями на войд, и в самом конце попытаться скастить в UInt8. Тоесть последняя строка должна быть что-то типа var swiftArray = nsArray as AnyObject as [UInt8] - но я не уверен что у тебя на каком-то моменте все не наебнется.
>>672664 >Пока эппл будут каждые пол года релизить новый свифт, нормальных учебников не будет. Золотые слова. Свифт первый и второй – это разные языки. Сейчас ещё и третий выходит.
>>676661 >Что значит "битовый размер совпадает"? То, что количество бит в массиве и в объявленных полях структуры совпадает. Понятно, что там еще куча барахла в объекте будет, я про непосредственно данные в массиве.
Спасибо за то, что ты написал далее. Я убедился в том, что все эта моя затея - полная дичь. Свифт он "как бы не для этого чтоли" (но зачем тогда там такое разнообразие ансейф типов). Я уже все сделал на чистых сях и все прекрасно работает. Мне просто интересно - или это я настолько непроходимый тупорылый баран, что не могу понять 0-day-идеи свифта, либо свифтик не такой уж айс. Получается, не баран.
>>676917 Спасибо, вроде пробовал. Точно не могу сказать, потому что под эту задачу я пробовал слишком много решений stackoverflow, я в них уже запутался. Выложить кодик - зачем? Выжимка проблемы мной уже озвучена. Никакой доп инфы в кодике нет.
Итоговое решение - отказаться от использования свифт в проекте.
>>677321 > 0-day-идеи свифта Ну он просто замена objC а не С. Я точно не знаю, но судя по всему в Apple такая идеология что они не рассматривают objC (и следовательно свифт) как полностью универсальный язык. Я подозреваю что достаточно заметная часть эпловского софта пишется на С (или С++) а objC/swift используется для интерфейса. На это наталкивает распространенность бриджинга разных видов, toll free bridging между типами Core Foundation и Foundation Kit, тоесть можно получить, к примеру NSDictionary из objC кода, обработать его в С коде считая что это CFDictionary, а потом вернуть назад с минимальными затратами. Теже блоки сделаны как расширение С синтаксиса (а не objC) из-за чего у них немного всратый синтаксис, GCD (относительно новая разработка) - сишный фрейморк с которым можно работать из С кода. Тоесть в aplle, наверное, считают что это норма (в том смысле что сами так делают) когда ты основную массу кода пишешь на objC/swift, а некоторые специфические участки выполняешь на С или С++, если нужно.
Теперь представь, что struct data { uint32_t num: 4; uint32_t payload: 4; uint32_t crc: 4; uint32_t reserved: 4; }; объявлена в заголовке Objective-C, настроен бридж, а все остальное мне надо повторить в swift.
>>678021 >struct data packet = (struct data)gameNetworkBuffer; Не могу я в теги. Видно, что курсив сожрал мои указатели. struct data%STAR% packet = (struct data%STAR%)gameNetworkBuffer;
>>678296 Лично я в своем проекте пытаюсь решить проблему. Конкретно валится после вписывания этой строчки >let packet = UnsafePointer<data>(gameNetworkBuffer).memory Валится с segmentation fault.
>>678296 >>678564 Твое решение правильное. Спасибо, добра тебе! У меня валилось из-за объявлений. У меня реальная структура содержит в себе еще структуру, а в той уже указатель. Он объявлен как [0] массив. Из-за этого все валилось. Объявил с символом звездочки - заработало. Спасибо еще раз! Чаю выпей!
>>630631 (OP) Есть какой-нибудь handbook по передаче данных? Я еще учусь, но я просто заебся, это какая-то боль.Я просто могу уже продумать всю логику и алгоритм задачи и часа 4 сидеть тупить и сражаться с ругательствами конпелятора
ПЕРЕДАТЬ В МЕТОД БЛОК @ ПЕРЕДАТЬ В МЕТОД БЛОК, В КОТОРЫЙ ПЕРЕДАЕТСЯ ОБЪЕКТ @ СДЕЛАТЬ ВИДИМЫМ %NAME ДЛЯ ДРУГОГО КЛАССА
>>678813 Кстати, это какой процент от работы ИРЛ? Это вообще хоть какие-то значимые вещи/основа или это потом само придет так же рутино, как и объявлять переменные?
>>678843 Никогда это не придёт. Objective-C был изначально придуман как дальнейшее развитие MacApp и Hypercard на компьютерах NextStep и ни для чего больше предназначен не был. Весь хоть сколько-нибудь серьёзный софт под Mac OS Classic пейсали на Сишке с Посраллем, а для отладки там был отладчик уровня Ассемблера, тем более, что Ассемблер на тех ещё процессорах был более наглядным, чем даже x86, и там всё было наглядно (ну или почти всё). Счастливо поебаться, в общем.
Студент 3 курс, знания - java se. Думаю куда дальше катиться: в ведроид или к вам? Как там вообще дела у иосников? Если сейчас начну учить свифт, то к моменту как я его выучу он уже станет основным языком? Много подводных камней в разработке под яблочные системы?
Подучил чуть Obj C, кое-что разобрал по массивам, объектам, аутлетам, нотификациям, делегатам, анимациям с таймерами, немного по таблицам. Не разбирался с кор датой, потоками, вебом.
Могу ли вкатиться куда-нибудь джуном или меня пошлют как совсем зелёного? Смотрю на то, что умеют иные бояре, руки опускаются от того, как много умеют они и как мало умею я.
>>679300 >Если сейчас начну учить свифт, то к моменту как я его выучу он уже станет основным языком? За две недели и в основные языки? Да вряд ли. Учи оба языка.
>>679440 Сделай апп в стор/опенсорс который загружает данные с сети, кэширует в коредату и показывает в тейбл или колекшн вью. С этим иди и устраивайся джуном.
>>678862 >Objective-C был изначально придуман как дальнейшее развитие MacApp и Hypercard на компьютерах NextStep и ни для чего больше предназначен не был. Норкоман чтоле? Прочитай хотябы в каком году придуман ObjC. Я уж не говорю о том что Эппл и Некст развивались независимо лет этак десять. >HyperCard Было дело, ваял на этой предтече гипертекста цветную аркаду в илитной гимназии после уроков лол
Можете обрисовать из чего складывается и чем характеризуются ранги Jun->Mid->Sen IOS девелопера? Есть ли какой-то основной вектор и побочные или важно все? Если все, то в каких пропорциях? Вот проперти из тех, что сразу пришли в голову: @Знание дохуя фреймворков @Макро понимание архитектуры проекта и его видение в будущем, оставление места для маневров при масштабирование и роста проекта. @Алгоритмы @Структура данных @Байтоебство @Микроскилл, умение сделать какой-нибудь одной штуки с изьебистым способом,оверинжиниринг.
Расставьте их в порядке приоритета что-ли и добавьте свои, которые я упустил.
>>685498 Разница простая. Всё, что работодателю гарантирует, что ты сделаешь проект нужной ему сложности в нужные ему сроки, делает тебя сеньором. Чем дальше от этого, тем ниже ты. Всё.
>>685498 >Вот проперти из тех, что сразу пришли в голову: Хуиты понаписал и сидит довольный, которые далеки от реально разработки говна что будет тербовать заказчик
>>677383 Пока эппл все пишет на objC, CoreFoundation, C ,C++ даже новые программы для El Capitan - Photos и с нуля переписанный Disk Utility - используют objC, а не Swift. Отсюда возникает вопрос, а не фикция ли вся эта шумиха по поводу скорого перехода на Swift?, видимо не оправдались ожидания эппл, раз они написали Photos на objC. На CoreFoundation, C, C++ в основном фреймворки, библиотеки и драйвера.
>>643277 Я раньше тоже ненавидел проги на яве за их убогий интерфейс. Но, когда попробовал продукты от JetBrains, другие IDE для меня перестали существовать. Да и интерфейс почти не выдаёт их явовость
>>688378 Ну так как бы самыми главными приложениями они не хотят рисковать, пока язык не стал мачурным. Всё таки, если ось и стандартные приложения начнут глючит - эпла заебут исками да и вообще перестанут покупать. Думаю, версии к 4-5 начнут переходить. Просто сколько можно кодить на этом говне мамонта - objc
>>689534 >>692011 Вы перекатитесь на свифт ровно тогда, когда его рантайм будет частью iOS. А пока это говно раздувает вам бинарь на 10+ мб - это пиздец. У меня приложение в целом весит 10 мб. Решил пару классов на свифте написать и хуяк - 20+ мб. ЗАЕБИСЬ
Так что перекат на свифт только вложенностью свифт-рантайма и ограничивается.
>>690837 В частности с AppCode - это говно, по сравнению с xcode, совершенно неюзабельно ни для чего кроме рефакторинга кода, а именно переименования переменных по всему проекты. С остальными задачами совершенно не справляется
Из вас 100% есть те, кто имели дело с хакинтошем. Так вот, собираюсь брать новый стационарник, на котором второй системой будет стоять хакинтош сугубо с целями разработки. Сколько оперативы нужно, чтобы этот ваш икскод работал на нём без тормозов, и ещё тянул эмулятор?
>>692251 >Там симулятор - те приложения фактически ставятся в систему и нет вирт. машины, те ресурсов почти не жрет. Лёл. Ресурсы жрёт еще как, особенно при отладке.
Почему цвет в эмуляторе и мобилы отличается от того что задан в xcode? На оверфлоу пишут что некоторые тупо добавляют по rgb + параметры на глаз. Такие костыли как по мне это тупость, есть другие причины?
Анон, мне необходимо тестировать приложение на реальном айфоне, но не хочу сейчас платить и регать дев-акк, насколько я понял, в 7-мом икскоде это возможно, но у меня не получается: подключаю айфон, икскод его видит, но сертификата нету, предлагает пофиксить проблему - тут, я так понимаю, он должен всё нормально сам скачать, но у меня выдаёт что-то типа "Could not generate key pair for CSR". Подскажите, пожалуйста, как исправить.
>>692891 Каждое устройство выводит цвета по своему. Добится абсолютно идентичного цвета не возможно технически (на нашем уровне технологии). Две только что произведенные соседние жк-матрицы на конвеере будут по разному показывать цвета. Про разных производителей и говорить нечего. Поэтому там где нужна точная цветопередача производят дополнительную калибровку. С помощью колориметра замеряют как именно отображает цвета данный конкретный экземпляр матрицы, загоняют данные в ICC-профиль, и дальше происходит то что ты назвал "тупостью" - перед отображением цвет немного подправляется исходя из данных ICC-профиля чтобы получить именно нужный цвет на данном экране. Обрати внимание что ты имеешь дело с тремя разными цветами. Цвет который ты задаешь для отображения. Цвет который отображает твой монитор. Цвет который отображает устройство.
>>692898 Так смотри, есть эмулятор, на котором пипеткой смотрю цвет и он не совпадает на моем же аймаке, с тем цветом что я указал в икскоде. Причем тут тогда твоя калибровка, если на одном девайсе происходит действие.
>>692669 В XCode не текстом ли задавал? Если color = [UIColor colorWithRed:... то не забывай цвета указывать в формате 172/255.0, x/255.0, короч все делить не забывай.
>>692216 Да кого сейчас ебут эти 10-20 метров? Даже лимит по скачиванию через сотовую сеть - 50 метров. Если писать для мурики, то им тем более похуй на размер. Для рашки может быть в каких то ебенях и будет смотреть на размер. Но не похуй ли на таких пользователей?
>>692217 Сейчас там рефакторинги для свифта все поотключали, потому что только допилят их, так выходит новая версия, в котороё всё по-другому. Но должен же он когда-то стабилизироваться. К версии 3 хотя бы. С обжэктивом всё было прекрасно, пока я на нём писал
>>697995 Живу в гейропке, дрочево на трафик есть, в рашке же почти безлимит по мобильному LTE. А тут - ну, 900 мб можно купить, за 10 евро. А можно 1500мб за 15 евро. Нравится?
А вообще ты мудак. Ибо когда приложение увеличивает вес в два раза с нихуя, только из-за использования нового языка - это хуёво. Скорее всего ты просто никогда не сталкивался с оптимизацией веса приложения. Ибо даже в заявленном тобой случае с 50мб те 16мб, которые вешает сверху свифт - огромный процент. В 16 мегабайт можно уместить огромное количество графики.
Почему нет нормальный сочетаний клавиш? Как мне сдвинуть курсор на одно слово? Почему стандартные хоткеи для набора текста не работают? Почему ебучие ошибки отображаются только по клику слева, куда почти наверняка втыкается дебажная метка?
Делаю пример по официальному руководству эппл - не работает! Через полчаса ёбли и гугла оказывается, что эти гомосеки не указали, что там-то надо галочку поставить.
Хочу установить популярную простуюбиблиотеку - делаю всё, как указано в их гайде - не работает! Через 2 часа ебли и гугла оказывается, что эти гомосеки не указали, что ебучий икскод может проебать адрес репозитория.
Установил, копирую пример с сайта - 2 строчки - не работает, какая-то хуйня с типами, сука, 3 часа ищу решение, блядь, как же я ненавижу эпл, горите в аду, говноеды маркетинговые.
>>698719 >Как мне сдвинуть курсор на одно слово Option+стрелка (или контр+стрелка). Алсо да, добро пожаловать в iOS кодинг, придающий чудесное ощущение хуя во рту. Алсо попробуй другие идешки, если уж ты такой нервный
>>698743 Угу, спасибо, уже и сам нашёл, как и обёртку для ебучего класса. Пиздец, клавиатура тоже неудобная, я уже не гневаюсь, а грущу, ведь "эпл - это удобство, дизайн", и прочее говно.
>>698719 долбоеб, на MacOsX стандартные хоткеи для перемещения между словами/строками - alt/cmd + стрелка. Такие же и в xcode. Ты откуда вообще вылез, пидор, раз стандартные хоткеи не знаешь?
>Хочу установить популярную простуюбиблиотеку - делаю всё, как указано в их гайде - не работает! Через 2 часа ебли и гугла оказывается, что эти гомосеки не указали, что ебучий икскод может проебать адрес репозитория. Ты чем там занимаешься содомит? Установка любой библиотеки производится одной командой в терминале - "pod install". Какой нахуй репозиторий, какой нахуй икскод?
О, я ещё нашёл изюминку хуесосания макоси: нужно было мне установить джем, вбиваю: gem install blablabla хуйтам! нету рзрешения Окей, иду на сайт блаблаблы, там та же команда - начинаю гуглить, ебусь, вижу решение через судо: sudo gem install blablabla Вбиваю - просит пароль - а у меня нет пароля на юзере, ничего не пишу, жму энтер - "вронг пассворд". Нихуя ж себе, ебусь дальше, пока не нахожу на официальном (!) сайте эппла, что, чтобы выполнить коанду через судо, нужно установить пароль, а потом его ввести. Пиздец, каким же говном потреблядей кормят, я офигеваю.
>>698895 Говна въеби, стандартные хоткеи через контрол идут, а не через альт или говнокомманд. >Какой нахуй репозиторий, какой нахуй икскод? Вот, блядь, я кокоподы и устанавливал.
>>698898 >стандартные хоткеи через контрол идут Долбоеб? контрол года с 2007-го переключает рабочие столы. Стандартные хоткеи на нормальных платформах (mac os) ВСЕГДА были через alt/cmd. >Вот, блядь, я кокоподы и устанавливал. пик релейтед (https://cocoapods.org). Я очень надеюсь что ты уебёшь с нашей няшной платформы разработки куда подальше - подобный скам нам не нужен.
>>698920 Ну так уйди, не мучай себя. Макось, необходимость ставить хакинтош, платный dev-account - отличный фильтр, повышающий порог вхождения в платформу. Таким образом зарплаты ios-разрабов никогда не будут демпинговаться понабежавшим быдлом. В отличии от андройда, кстати - вкатиться туда куда проще.
>>698719 А ты просто съеби. Ты все равно не сделаешь нихуя. А кто-то из нас встретит в вакансиях организацию, чей проект ты завалил, потому что у тебя бомбит от хоткеев, и снова положит в карман топовую оплату в индустрии. А ты иди в привычный notepad++ пиши html, там все твои хоткеи, знакомые тебе по пиратским дискам windows xp.
>>698897 Просто ты школьник, который бабыюникса не нюхал. Любой нормальный девелопер (кроме .net-щиков), хоть немного знаком с линуксом и знает, как работает sudo
Сап. Можно ли технически сделать, чтобы через bluetooth с одного айфон я видел, где находится неподалеку другой айфон, вычислять расстояние между ними и угол (типа компаса)? Вообщем типа "найди свой второй айфон".
>>700081 > Чтобы по RSSI найти одни айфон, тебе нужно еще 3 других айфона Или последовательно вычислить RSSI в трех разных точках, если искомый айфон не перемещается.
>>700091 >> The advertisement data can be accessed through the keys listed in Advertisement Data Retrieval Keys. You must retain a local copy of the peripheral if any command is to be performed on it. In use cases where it makes sense for your app to automatically connect to a peripheral that is located within a certain range, you can use RSSI data to determine the proximity of a discovered peripheral device.
>>700087 Да, можно ходить, бегать, прыгать, махать руками по всей квартире, зайти к соседу, покататься на лифте. Чем дольше бегать - тем точнее можно определить телефон. Пробовал карту wifi сетей составлять?
>>700064 > >через bluetooth > нет А через какие технологии можно заюзать? Допустим, интернета через wifi и 3g у обоих айфонов нет. > >угол > что такое угол между двумя точками? Угол, проведенный от точки 2 айфона к вектору с началом в точке 1 айфона и направленного вдоль линии, куда я смотрю (а айфон держу прямо). > >типа "найди свой второй айфон" > гугл радиотриангуляция Гугл плохо осведомлен об этой штуке и предлагает фототриангуляцию.
>>700081 > Гугли епть радиопеленг, триангуляция, сотовую связь, вычисление курсовых углов, вот это все. А я как-то могу на практике это заюзать в ios? Это же низкоуровневые вещи, разве есть либы для этого?
>>700115 >А через какие технологии можно заюзать? Допустим, интернета через wifi и 3g у обоих айфонов нет. >Гугл плохо осведомлен об этой штуке и предлагает фототриангуляцию.
>Угол, проведенный от точки 2 айфона к вектору с началом в точке 1 айфона и направленного вдоль линии, куда я смотрю (а айфон держу прямо).
я понял, просто доебался.
Короче, ни айфон ни андроиды не дадут тебе никаких технических плюшек, которые позволят тебе определить положение телефона какими-то принципиально новыми способами. Фактически через блютус тебе нужно сделать свой мини-аналог GPS или определения положения по сотовым вышкам.
Хочу просто спокойно прочесть книгу для ньюфага по obj-c на русском, что реально найти из относительно свежего? Пока попадаются издания 12 года и сплошной свифт
>>700852 Не выебывайся. У меня нет проблем с чтением на английском, но для легкого освоения я выбираю родной язык. Для остального есть документация в оригинале.
>>690845 >стандартные приложения начнут глючит Лол, они и так глючат после йосемити. Я немного пишу под Мак ОС, начиная с 10.9 качество софта ухудшается в каждой новой версии Мак ОС. В капитане, например, сломано: PDFKit - после открытия PDF - выжирает весь проц [CPPage reconstruct] - эта хуйня тупо блочит main thread и ничего нельзя сделать(в Skim это как-то пофиксили). Такое чувство, что оно просто конвертирует все страницы в файле. Конечно если процессор i7, то подвинет не пару секунд, но на старом C2D буке, это штука заметна. Если же ликовать с PDFKit из OSX 10.9 этой проблемы просто нет. Новый WKWebView - сломанный к хуям весь. Appkit/Quartz - в таблицах выжирает проц - бесконечные drawInContext - после __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ А в 10.9 после CFRUNLOOP_IS_CALLING_OUT... все равномерно распределяется.
>>702474 Да, можно просто начать с того, что с 7 версии Xcode стал каким-то невыносимо глючным - крэши регулярно. Он легко в первых версиях 7.х падал при редактировании строки @property NSArray<NSString(звездочка)>(звездочка) arr;
Делаю все как на скрине, но при нажатии на любую кнопку в NSSegmentedControl возвращает tag = 0, куда копать? Уже и через IB тэги выставлял, и только программно без IB, все равно любая кнопка возвращает 0.
>>702474 >>702605 Есть такие люди, у которых в любой ОС постоянно что-то не работает. А есть такие (например, я), у которых в личном парке 3 мака под ил капитаном, фултайм хардкорная разработка в двух областях, рисование, графика, музыка, админство. И ни одного глюка. На машинах с windows тоже ни одного. И на машинах с linux ни одного.
А таких людей, у которых pdf и креши я тоже знаю. Они бесполезны. Странно, что они каким-то образом печатать умеют.
>>703090 >фултайм хардкорная разработка в двух областях, рисование, графика, музыка, админств Читать как 2 лабы уровня lab04.cpp, фотошоп чтобы кружок нарисовать, фрутилупс дальше туториалов 1 урока не осиливший и настройки утки
>>703355 Вот именно так читать не надо. Это прочтение максимально далеко от истины.
Но если тебе так хочется - можешь читать. Суть все равно та же - даже на lab04.cpp у нормальных людей ничего не глючит. А у ненормальных постоянно какие-то pdf отваливаются.
>>703090 Какой ты умный) Прям и жнец, и певец и дуде игрец. Профи широкого профиля просто. В ебальник бы сунуть за базар твой гнилой, ибо пиздишь о том, чего не знаешь. При работе с asset'ами тоже кстати проблемы бывают, аж до вылета. Знаешь, что это такое, дизайнер, админ, худождник?
>>703390 >даже на lab04.cpp у нормальных людей ничего не глючит. >даже на lab04.cpp Ебааааный дебил. Так на то она и лаба, что на ней ничего сложного не делается, отсюда и глюков быть не должно. Что у тебя с логикой, даун?
Аноны, подскажите нормальные виде/текстовые уроки программирования в xcode. При условии, что я программировать не очень умею, ну точнее могу в бейсике, паскале или си написать что-нибудь совсем простенькое, но попытавшись написать helloword в xcode у меня чет подгорело, гигантские статьи для одной простейшей программы, привязывание кнопок к всяким ебеням, похоже на виндовсформс, но почему-то пиздец видится мне, плохо понятно всё. Да и даже сделал как по гайдам, а оно обрезается в эмуляторе, который симулятором называют.
>>704274 >Аноны, подскажите нормальные виде/текстовые уроки программирования в xcode. Шапчку читай, слепой еблан, даже не пытался, лишь бы говна понаписать.
Котаны, поясните за батхёрт. Как так выходит, что Cocoa Обж С Свифт Хкоде и вот это всё по сути довольно сложная разработка, если сравнивать с макакопхп и т.п. скамом. Кроме того, ещё и довольно ресурсоёмкая, потому что бесплатно вкатиться намного сложнее - все девайсы для тестов стоят дорого, оборудование, т.д. Оно ж понятно, что это хакинтошится, но всё-таки. ТАК ОТКУДА ЖЕ СТОЛЬКО ИНДУСОМАКАК ЗАНИМАЕТСЯ РАЗРАБОТКОЙ ПОД МОБИЛЫ? У них же нищая обстановка, каким образом их столько много в такой достаточно сложной и ресурсной сфере?
>>705710 >каким образом их столько много в такой достаточно сложной и ресурсной сфере Если речь идёт про ios, то ты не прав. Мало ios разработчиков, во всяком случае в РФ и Европе.
>>705710 Насчет макак - хз. А хорошего иос разработчика найти почти нереально. Их мало и они все заняты. Макаки они что пилят? Всякое дно типа доставки пиццы и игрушки на кокосах. Этого может и навалом. А людей, который тебе под иос сделают яндекс.карты или портанут под иос FL - катастрофично мало.
>>705710 iOS постоянная нехватка, хз откуда у тебя данные.
>>705821 Приложения для бизнеса черпают деньги из бизнеса. Игрушки на кокосах делают давно только лохи в маркетинге, денег с игрушек на аппсторе года три как нет вообще.
Анон, я задолбался, пытаясь настроить Table View Controller в Свифте в своём приложении, выдаёт ошибку:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier MealTableViewCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'
Дошло до полного пиздеца - этот контроллер сделал один в один по гайду для ФудТрекера - то же самое, хотя сделанный с нуля или скачанный с эппла проект работает. В инете кроме очевидных советы типа шаманства в духе "удали идентификатор, переведи курсор, введи его заново".
>>708252 Пример из фудтрекера. Ошибка в этом месте:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { // Table view cells are reused and should be dequeued using a cell identifier. let cellIdentifier = "MealTableViewCell" let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! MealTableViewCell
// Fetches the appropriate meal for the data source layout. let meal = meals[indexPath.row]
Eсли изменить tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) на tableView.dequeueReusableCellWithIdentifier(cellIdentifier) или добавить костыль в viewDidLoad в виде tableView.registerClass(MealTableViewCell.self, forCellReuseIdentifier: "MealTableViewCell"), ошибка пропадает, но появляется другая:
fatal error: unexpectedly found nil while unwrapping an Optional value
>>708109 > MealTableViewCell Тебе наверное нужен nib с MealTableViewCell и не забыть там в свойствах указать что это именно MealTableViewCell а не UITableViewCell (если у тебя отдельный класс под ячейку) и в любом случае там же чуть ниже указать нужный reuse identifier (который совпадает с именем класса - MealTableViewCell).
>>706599 У меня всё ок. Наверное потому что я не конкурирую с индусами, у них рейт в несколько раз меньше и нанимают их совсем другие заказчики. >>706910 Джуны нигде не нужны. Всё что выше джуна - нехватка. Алсо искать IT-работу через сайты работ это top kek.
>>708591 >Алсо искать IT-работу через сайты работ это top kek. А как/где искать? Я вот, например, нашел в своем тугом на иос вакансии городе контору вообще случайно. Искал опять же на сайте работ но там были предложения по веб хуите и прочему, кликнул по одной компании и перешел на их сайт и там у них увидел, что им иос еще надо но на сайте работ инфы нету вообще про это. Где искать то? Ты же понимаешь, что шнырь позиционирующий на должность джуна не имеет выбора и работает там, где предлагают, и терпит выебоны с начальства и переработки. У него еще нихуя нету и он хуй с горы, ему не из чего выбирать. Ясен хуй, что если ты мид+ то можно на забугорных местах с поиском подсуитится но вот в данном конкретном случае ищут на джуна и ты отвечаешь >top kek Так где искать? Линкедин?
А как в iOS происходит обновление программ? Допустим, захотелось мне поменять местами две строчки в каком-нибудь TableView, переписал код, а что дальше? На телефоне постоянно приходят обновления микро-версий у некоторых приложений, но все они по 100+мб, т.е. целиком приложение. Это лень горе-програмистов или нет возможности никак обновлять лишь маленький кусок?
>сговор основных поставщиков контента с провайдерами интернета что Ага, когда больше 100Мб по сотовому интернету не скачать, а дома всё равно безлимит.
>>709103 А ты ежедневно планируешь выкатывать апдейты из замены двух строк? Тогда хинт тебе: накопи апдейтов в течении недельки и выкати как охуительный апгрейд. Ну а если все же планируешь апдейтить ежедневно, то тебя или заблочат в магазине или твое приложение удалят пользователи, ибо их заебет это.
Антоши, пара вопросов есть у меня: 1) Как можно переключаться между ВьюКонтрллерами без привязывания Сегуе вручную на сториборде? Или хотя бы как создавать Сегуе программно? Потребность вызвана тем, что в приложение многие клиент-серверные операции требуют авторизации, которая в случае неудачи должна выкидывать на экран логина. 2) Как сделать так, чтобы текст в таблице не вылезал за пределы экрана, а переносился на другую строку?
>>709365 Да не собираюсь я ежедневно ничего выкатывать, я ни одного приложения ещё никуда не выпустил, лол. Просто я не понимаю, почему мне каждую неделю нужно качать несколько стомегабайтных "апдейтов", когда нового кода там, наверное, почти нихуя.
Ну и всё же главный вопрос-то — возможно ли обновление лишь части приложения? Или максимум можно не заставлять заново качать все ресурсы (вроде бд в словаре, всяких картиночек и т.д.)?
>>709859 Ты можешь пушить часть изменений со своего сервера, никто тебе не мешает, если этот функционал не противоречит требованиям безопасности. Алсо, никаких проблем в том, чтобы сделать апдейт в 100 мб раз в пару недель нет. Это нормальная "расплата" за то, чтобы какой-нибудь мудак не залил свой вирусняк в телефоны.
>>709908 >Это нормальная "расплата" за то, чтобы какой-нибудь мудак не залил свой вирусняк в телефоны. То есть? Что ему мешает это сделать при большом апдейте?
>>709908 Не можешь, эппл запрещает загружать код со сторонних источников. Если получится протащить через проверку, то все равно в любой момент смогут зарезать приложение.
Возможно ли получить из OS X приложения доступ к подключённому к айфону? Или, можно ли синхронизировать два дополняющих друг друга приложения без использования всяких айклаудов и т.д.? Грубо говоря, хочу следующее: 1. Оба устройства подключены к одной сети. 2. Запускаю на телефоне приложение, тыкаю "sinhronizirovat", он магическим образом находит компьютер (через bonjour какой-нибудь) и пытается подключиться. 3. На компьютере висит даемон, ждущий этого подключения. 4. Тыкаю на телефоне одну из двух кнопок (компьютер -> телефон или телефон -> компьютер), и он начинает передавать данные в нужную сторону.
Такое возможно без особых костылей сделать? Вроде бы всё довольно очевидно, кроме нахождения нужного компьютера в сети. Бонжур этот же мне поможет сделать, верно?
Или, может, стоит как-то по-другому организовать? Приложение уровня слежения за расходами, исключительно для личного пользования (по крайней мере, пока).
>>710731 >Такое возможно без особых костылей сделать? Немного даже перефразирую вопрос: не является ли предложенный мною вариант сам по себе костылём? Вдруг есть какие-то уже готовые элегантные решения. В гугле забанен честно.
>>710731 сделай через любой веб сервис, раньше я бы предложил парс, но ему осталось меньше года, актуальные данные можно хранить сразу в их базе, более того, по обновлению данных можно рассылать пуш нотификацию что приехали новые данные
>>710839 Не хочу я никаких веб-сервисов, потому что обязательно будут проблемы либо с их, либо с моей стороны (у меня сейчас интернет говно, и лучше не предвидится в ближайшее время). Тем более в их базах там что-то хранить, ну его. У меня есть амазоновский сервер, так что если уж и надумаю через интернет делать, то со своим, и пуши оттуда же, но мне это нинужно, я и так знаю, когда новые данные приехали — когда я их туда ввёл.
>>710839 > раньше я бы предложил парс, но ему осталось меньше года Парс ушел в опенсорс и теперь его, даже с дашбоардом, можно без проблем поднять на своём сервере.
>>711895 у меня для тебя есть новости от торговцев iphone совместимыми продуктами, типа чипов для конекта к устройствам чере зашифрованный интерфейс. Вот, продажи их упали на 220 процентов. Выводы делай сам.
>>711911 Даже если будет беспроводной доступ, ты без этого чипа не сделаешь аксессуар для айфона(пэда, пода) которое носит логотиа MFI. так на вскидку.
>>711947 Тебе чел пишет, что количество контор которые хотят поучвствовать в донает Apple, для их типа лицензируемой платформы упало почти в 2.5 раза. Люди платили за воздух конкретный бабки, теперь такая штука больше не катит, эпл не генерирует деньги как раньше. Закат близок друг. Дерзай, самое время.
>>712019 Лол. А ты из будущего приехал что-ли, неговноед? С новым дешман SE продажи аппла только вырастут. Вырастут и продажи приложух. Мантра про то, как всё будет плохо, звучит уже последние лет 8, с того момента, как всё началось. Конкуренцию срезать нужно, но не итт, неговноед, не итт. Запомни: не итт.
>>712061 >С новым дешман SE продажи аппла только вырастут. От этого, кстати, пригорело. Все вокруг кричали, что SE никто не купит, херня, в день выхода у главного входа в эппл стор только три бомжа были, кококо. Пришёл в эппл стор на следующие выходные: "SE нет, когда будет — не знаем".
>>712009 Ты уже больше 10 лет каждый год как поехавший пророчишь смерть яблокам. Кому верить? Ебанутому анониму, возомнившему себя вангой, или очевидно самой дорогой корпорации в истории цивилизации? Для тебя есть новость. Ты. Лично ты. В данном случае вот конкретно ТЫ - сосешь и идешь нахуй. Бодро, без оглядки. А мы тебе в след еще опущенские прибаутки отвесим. Потому что ты и есть опущенец.
Началось все с >Есть смысл после 6 лет веба в ios перекатываться?
А потом уже пошли пророчества и путаница в ссылках на посты.
Ничто не вечно, и Apple тоже. Но Apple это не таз и не корыто, которое бульк и потонуло. Это титаник, который будет тонуть 2-3 года.
В ios перекатываться смысл есть, пока тебе нужна интересная работа с максимальной оплатой. На сегодня это яблоки.
А когда оно явно начнет тонуть (как говорят местные ванги) - у тебя будет предостаточно времени, знаний и опыта, чтобы спокойно перекатиться на следующего по списку кандидата дроид
>>712697 Все не так просто, мой друг.Эпл не может утонуть если мобильная движуха будет все еще активно развиваться. Если потонет эпл, то это будет значит что тебе придется перекатываться не на другую моб платформ, а вообще в другой домен.
>>712737 Но Microsoft же в свое время феерично просрали платформу (будучи основным игроком какое-то время). Мобилы до сих пор живы, а микрософту места нет в этой области. Любой может ошибиться.
>>712774 Ну я не припомню ниодного разработчика, кто перекатился из Windows Mobile, в IOS. Там парадигма оказалась совсем другая, и по тем меркам передовые спецы в итоге оказались обезьянами неосиляторами.
>>712780 >Там парадигма оказалась совсем другая Угу. Фотонно-квантово-глюонная.
Разница между платформами - точно такая же, как разница между любыми двумя фреймворками.
Не смог перекатиться - ну значит там разработчик, который умеет писать только по готовым сниппетам, а думать не умеет. Не в платформах тут дело, а в головах.
>>712790 Если вспомнить те веремена, то во всех PocetPC и мобилах был швейцарских набор из базовых приложений, и они имели просто монополию на установку. Где все эти разрабортчики, кроме приложений от крупных контор? Ничего в IOS или Андройд по схожему функционалу и такойже популярности не попало. Резко настало время новых девелоперов, которые правильно подали схожий функционал и заняли топ 10. Так вот рассуждать о том, что перекатится легко - это пиздабольство начинаещоге кодера, если прилипнишь знатно к своей платформе, то сдохнешь вместе с ней.
>>712797 >начинаещоге кодера В данном случае перед тобой рассуждает разработчик со стажем 10+ лет под 5+ платформ (среди них натив десктоп, натив мобилы, веб). Так сложилось, что пишу сейчас под иос (бабла больше). Перекатываться - легко.
>>712818 Если ты выбрал эту платформу по принципу где реально бабла больше, то, у меня для тебя плохая новость, ты, явно, хуево разбираешься в рынке, а значит и во всем остальном.
>>712927 1C всегда сможешь на хлеб намазать. Стабильно тридцатка в регионах, там про всякие мобилы даже не слышали, так что проще сразу с голоду подохнуть. Не удержался и протолстил.
>>712894 Местами сыровато, местами тормозно, местами жырно. Прям вот огненной причины его трогать нет; пиши, пожалуйста. Только будь готов, что в середине проекта будешь все переделывать с нуля на обж. Хотя полно людей простенькие проекты на свифте нормально завершают.
Mission critical - obj-c, творческая свобода - пробуй свифт. Все как в шапке. Платина.
Анон, в какую сторону копать ньюфагу, я сегодня узнал на хабре про такую штуку как фаербейз. Так вот, есть приложение. нужно сделать там возможность использования без регистрации, но тогда данные просто сохраняются на телефоне, а если человек залогинится через гугл или что там, то эти данные буду хранится на сервере - допустим тот же фаербейз.
Как мне вообще всю эту цепочку осуществить, куда копать, что делать?
>>713442 Данные на телефоне сохраняются в любом случае (кеширование). Делаешь сначала это. Потом разбираешся с апи фаербейза. Учишся закидывать туда рандомную хуиту, потом вытаскивать. Потом закидываешь данные с телефона и делаешь синхронизацию. При запуске приложения (или логине юзера) вытаскиваешь инфу с фаербейза и обновляешь кеш в телефоне. Когда юзер изменяет инфу - обновляешь в телефоне и в фаербейз.
>>713482 Зависит от приложения. Если хватит функционала то лучше использовать рилм так как он проще. Кор дата сложнее, но у нее есть божественный NSFetchedResultsController.
>>710548 Ну проверки и проверки, размер обновления-то тут при чём? Или ты намекаешь, что можно было бы по кусочками вирус добавляя, при этом пока целиком не соберётся, обнаружить нельзя?
Возможно ли скомпилировать OS X приложение с новыми фичами, но как-то оставить возможность запускать его и на более старых версиях, где эти штуки будут просто отключены? В частности, NSGestureRecognizer интересует, который только в 10.10 завезли (лол, спустя 6 лет после добавления мультитача на ноуты). Или только две разных версии делать? Как в таком случае работать с кодом, если разница там в несколько методов будет? Не копипастить же между проектами.
>>713534 Размер тут не при чём, это ты зачем-то форсишь про размер. Вопрос стоит так: разрешать или вообще не разрешать. Если разрешаешь, то включаются новые риски и неважно, какого размера обновление.
>>713556 Определяй, реагирует ли приложение на твою фичу, и если нет, то включай другой вариант. Если решить делать две разных версии, то используй таргеты.
>>713563 >это ты зачем-то форсишь про размер >Вопрос стоит так: разрешать или вообще не разрешать Что я форшу? Вопрос стоял так -> >>709103 Что разрешать ты там собрался? Почему на компьютер обновления обычно маленькие и тебе не нужно весь фотошоп перекачивать, а на ios надо?
>>713565 >Почему на компьютер обновления обычно маленькие и тебе не нужно весь фотошоп перекачивать Ещё раз. На компьютер ты поставил фотошоп и разрешаешь ему делать много разного с твоей системой. С этого момента ты теряешь разумный контроль за ним. В иос миллион разрабов, и если за ними не следить, то сам представь, что будет. Поэтому условно опасные обновления проходят проверку, без докачек. Хотя по факту ты можешь настроить так, чтобы обновлять кое-что по мелочи. Вопрос, правда, в том нахуа это нужно. Вряд ли ты будешь каждый день поправлять размер ячейки.
>>713567 >Хотя по факту ты можешь настроить так, чтобы обновлять кое-что по мелочи. То есть, техническая возможность есть, но (почти) никто не пользуется, правильно я понимаю? Или это всё самодельные костыли будут?
>Поэтому условно опасные обновления проходят проверку, без докачек. Так можно ж это, установить этот мини-апдейт, а после него проверку сделать. И на этом и порешать, безопасно оно или нет. В чём разница-то?
>Вопрос, правда, в том нахуа это нужно. Например, чтобы можно было без проблем без вайфая обновиться, а не искать, находясь в стране третьего мира не рашка, интернет который хоть полчаса стабильно проработает, чтобы не дропнуть соединение (а докачки, походу, нет); чтобы не качать полчаса эти ёбаные 100+ мегабайт ради сомнительного нового говна, отказаться от которого нельзя, потому что при каждом запуске тебе в рожу выскакивает сообщение о новой версии.
>>713564 Так он мне сбилдить не даёт ведь, ругается: "коко, вы использовали X, а ваш деплоймент таргет слишком старый" и всё. Если сделаю билд для последнего, то вангую просто креш при запуске на старой версии. Впрочем, не пробовал. Или если через код добавить, а не сторибоард, то он и не заметит, что я этот gesturerecognizer использовал?
>>713574 >техническая возможность есть Есть, но ограниченная.
>а после него проверку сделать Нет, потому что юзеры уже словят твоих условных вирусов и всякой непотребщины.
>Например, чтобы Речь шла о том, что непонятно, зачем постоянно докачивать мелкие правки. Для крупных правок тебе всё равно придётся перезаливаться по полной.
>Нет, потому что юзеры уже словят твоих условных вирусов и всякой непотребщины. В смысле? Просто не пускать в аппстор до проверки и всё. Ведь с большим обновлениями сейчас так и есть, или нет? Я же просто не в курсе, как там вообще это происходит и ни малейшего понятия не имею, в чём состоит эта самая "проверка" (сорцов же у них нет), потому и спрашиваю.
>что непонятно, зачем постоянно докачивать мелкие правки. А какие ещё правки можно вносить каждые две недели с охуительными пометками "General Improvements" или вообще копипаста "Every update includes improvements for speed and reliability", как у фейсбука в каждом обновлении.
>>713574 Наверное просто исторически так сложилось. В первые телефоны приложения заливались полностью (когда появилась такая возможность), возможностью патчить их не озаботились, так как возможно посчитали лишним - приложения то маленькие были. С того времени так и тянется, так как никому не выгодно что-то менять. Забавно сложилось на андроиде - разного рода патчеры там есть, но они только для вырезания всякой хуйни (типа рекламы). Обновления приложений ввиде патчей никто не выпускает, насколько мне известно.
>>713494 т.е. пишу дату в рилм, затем отсылаю данные на фаербейз, если юзер зашел с нового девайся, то проверяю пустая ли база или нет или как-то так и тяну данные в рилм?
>>714087 Типа того. Сохраняй время обновления инфы и при синхронизации затирай более старую. Там нужно продумать разные ситуации, типа того что юзер потерял связь, обновил инфу в телефоне, при востановлении связи нужно обновить в фаербейз (наверное) а не наоборот.
>>713585 Ты походу вообще не понимаешь, о чём речь. Перечитай то, что тебе сверху написали, и сопоставь свои вопросы.
>Чем? Требованиями Эпла, чем.
>Просто не пускать в аппстор до проверки и всё. О чём ты вообще? Вот тебя и не пускают в аппстор до проверки, поэтому тебе надо выкатывать обновления через аппстор. БИНГО! Ты уж определись.
>каждые две недели с охуительными пометками "General Improvements" Никто не заставляет тебя выкатывать апдейт каждые две недели. Равно как и обновлять свой фейсбук. Равно как и считать фейсбук за правильную модель обновлений.
>>713585 >понятия не имею, в чём состоит эта самая "проверка" (сорцов же у них нет) Ну блять! Как ты думаешь, наверное они заранее озаботились тем, что всё видеть и без твоих сорцов, прикинь?
>>714283 >Ты уж определись. В смысле определись? Ты говорил, что частичные обновления какие-то там вирусы могут принести, а так проверка есть. Но какая разница, проверять целиком заново собранное приложение или просто пропатченное, включая процесс патчинга, если надо? Не давать пользователям обновление или патч до проверки. В чём такая большая разница-то с точки зрения "безопасности"?
>Требованиями Эпла, чем. Э-э, вопрос был "в чём проявляются ограничения".
>Никто не заставляет тебя выкатывать апдейт каждые две недели. Так я и не собираюсь, блин. У меня униные от того факта, что куча приложений так делают, вот и хочу узнать, так сложилось, как писал >>713606, или действительно есть острая необходиостс делать именно так, я тогда заткнусь и уйду. Про "можешь не обновлять" уже писал. Да и не в этом состоял смысл того предложения, а в том, что по большей части все эти апдейты, вероятно, и есть "мелкие правки". Разве что они по всему приложению раскиданы могут быть.
>>714293 Спасибо, а то я не догадался, что у них есть возможность делать необходимые проверки. Я имел в виду, что детали никакие не знаю, и может и правда есть какие-то возможности по одному символу кода незаметно добавлять в каждом обновлении, а потом хуяк-хуяк и eval().
>>714311 Если UILabel, то там атрибут lineBreakMode есть, а так через attributedText можно.
>>714380 >Но какая разница, проверять целиком заново собранное приложение или просто пропатченное Разница есть - это два разных процесса, которые требуют дополнительные ресурсы. Одно дело - ты запускашь условно (хотя так и есть наверянка) готовые скрипты, которые тебе говорят "да/нет", ну может ещё "подозрительно", и тогда ты, как низкоуровневый проверяющий персонал, связываешься с супервайзерами. Здесь всё унифицировано. И другое дело, когда под каждый патч ты делал бы свои скрипты - ты подумай над всеми этими миллионами приложений, и ответ просто нет.
>в чём проявляются ограничения Причин много - https://developer.apple.com/app-store/review/rejections/, использование private API в том числе. Из списка причин ты можешь увидеть, что проблема не только в вирусах, но также в том, что Апл хочет поддерживать определённый уровень качества в магазине.
>>714437 >когда под каждый патч ты делал бы свои скрипты Ну я как бы сравнивал способы: 1. Есть, формально, целиком новое приложение -> запускают скрипты. 2. Есть старое приложение, на которое ставится патч, получая то же приложение, что и в первом способе -> запускают скрипты. Тут, вероятно, да, добавляется слой скриптов для проверки того, куда патчер лезет в процессе, но ведь это тоже стандартное всё было бы и один раз писалось бы.
>Причин много Только к способу обновления ведь это отношения не имеет.
>Теперь узнал? Ну, так, примерно. "Тип работы меньше и исторически так получилось".
>>630631 (OP) Второй курс с курсеры Build a Foundation in iOS, который называется Networking and Security in iOS Applications, вообще не пошел. Первый мне очень понравился. А этот никак не могу себя заставить пройти дальше 2-ой недели. Препод разочаровал, походу он сам не шарит в том, что говорит, очень много косяков в видео. А когда он начал в своих видосах просто раскомментировать код, я понял что надо дропать. В очередной раз убедился, что лучше ничего Стенфордовских лекций нет. Жалко только, что новый курс для iOS 9 они выкатывать в itunes-u не собираются походу.
>>716059 Нахуя вообще проходить какие-то левые курсы, когда есть охуенная официальная документация? Вот, блять, просто бери и читай. Рили, я, как перекатившийся из C++, просто охуеваю от качества и обширности офф гайдов.
>>716072 Соглашусь с тобой тут. У меня тоже сложилось впечатление, что в офф. доке есть все, что нужно. Но вот поиск и навигация по доке это какой-то пиздец по-моему.
>>716098 Создаешь протокол huymodelObserver, в нем объявляешь сообщение типа -(void)modelDidRecieveData:(huymodel*)model В модели создаешь массив observers Когда какому-то объекту нужно следить за моделью - указываешь что объект соотвествует протоколу huymodelObserver, добавляешь указатель на этот объект в массив (делаешь у модели методы типа attachObserver и detachObserver). Эту хуйню можно в отдельный клас вынести и наследовать от него модели. Переопределяешь проперти pizda - после записи новых данных рассылаешь сообщения всем наблюдателям, будет что-то типа for(id<huymodelObserver> observer in self.observers) [observer modelDidRecieveData:self]; Естественно каждый наблюдатель должен реализовать метод modelDidRecieveData - где он уже обрабатывает данные от модели. После этого для каждого объекта которому нужно следить за моделью делаешь huymodel.attachObserver(obj), и потом когда получаешь данные делаешь self.pizda = данные из интернета и все кому нужно узнают что модель изменилась и могут обработать.
>>716081 Там есть все, что тебе когда-нибудь может пригодиться. Чтобы лучше по этой куче ползать рекомендую выделить день (проверено - хватает), проползти по всем разделам, посмотреть какие есть семплы, какие темы рассматриваются (референсы пока не смотреть!). Неспешно, чтобы не сдохнуть от скуки, зевоты и рутины. Останавливаться на интересном, не заморачиваться на структуре доков. Через месяц процедуру повторить. После этого в доки будешь заходить как в дом родной.
>>716160 А как по другому? Все сведется к наблюдению, потому-то по смыслу это наблюдение и есть. Это кажется что сложно, если разобраться то все просто. Можно попроще через делегата сделать. В модели проперти делегат, и она просто вызывает какой-то метод делегата когда меняется. Или KVO навернуть, но так наверное даже сложнее.
Пытался забилдить chromium-tabs, XCode 7 выдал error на строке: >+(CTBrowser [i/])browser{ >return [[self alloc] init] >} >-(CTBrowser )createNewBrowser{ >CTBrowser browser = [isa browser] >} Direct access to Objective-C's isa is deprecated bla-bla
Пытался в интернете почитать, но так до конца и не понял, чей же класс тут isa берёт? В комментарии написано "create a new browser with window controller based on current window controller's class", но этот метод вызывается исключительно в этом же CTBrowser.m,
В интенете писали заменить obj->isa на object_getClass(obj) или [obj class]*, но что тут является obj'ектом-то?!
Короче, заменил на [[self class] browser], вроде скомпилилось и запустилось, но хрен знает, правильно ли это? Там куча других ворнингов и какая-то рантайм ошибка с "adding unknown subview", но это вряд ли как-то может быть связано.
>>716288 А впрочем, скачал чей-то форк, по-новее, и там как раз [object_getClass(self) browser].
Что б уж не совсем зря пришёл: правильно ли я понимаю, что это сделано для наследования (т.е. создавался правильный класс без необходимости оверрайдить этот метод)?
>>716334 Да там почти тоже. Создаешь протокол huymodelObserver, в нем объявляешь сообщение типа -(void)modelDidRecieveData:(huymodel*)model. Вообще протокол не обязателен, он для статического контроля и чтобы автодополнение работало, лучше всегда с протоколом делать. В модели создаешь проперти delegate, тип проперти делаешь id<huymodelObserver> - это значит любой класс который соответсвует протоколу huymodelObserver. И дальше в модели каждый раз когда что-то изменяешь делаешь [self.delegate modelDidRecieveData:self]; - лучше перегрузить соотвествующие проперти (pizda), чтобы когда ты изменяешь проперти сразу и сообщение делегату отсылалось. А тот объект что должен сообщения получать назначаешь делегатом, что-то типа model.delegate = self. Ну и реализуешь в нем метод modelDidRecieveData: - каждый раз когда меняется модель будет вызывать этот метод указателем на модель откуда ты сможещь вытащить данные. Метод можно поменять для удобства, например сразу присылать изменившиеся данные. Или там несколько разных сделать и т.п.
>>716156 Двачую этого. Я все же придерживаюсь мнения, что этой документации не хватает четкой высокоуровневой структуры, но все же она в каком-то подобии есть. Я начал с ios technology overview - там в самом начале есть отсылки на ios app structure guide, view programming guide, view controller programming guide, events handling guide, concurrency guide + краткий обзор всех фреймверков и framework level'ов. Это можно считать стартовой точкой.
Сам objective-c я изучал по старой эпловской доке в pdf от 2012 года. Ее в доках сейчас не найти, я в гугле нашел.
Вообще бесит, что они отказались от pdf-версий. Как по мне так удобнее.
Аноны, подскажите. Есть строка NSMutableString с большим набором цифр, ну например "65431854654564867". Мне надо заменить 65 из середины на 99, чтобы получилось "65431854994564867". Я могу найти это 65 в середине через substringWithRange, могу так же удалить через deleteCharactersInRange. Но почему-то не могу вставить туда 99, или присвоить значение 99 тому участку хотя бы после удаления. Поясните что я упускаю, в чем туплю.
Анон, поясни за монетизацию приложений в аппсторе. Какую показывать рекламу чтобы епте срубить больше бабок. Интересует, как примерно подсчитать профит в день с 1к пользоветелей посмотревших 1 раз видос с рекламой/баннер с рекламой. Нашел такой калькулятор. http://ryanmorel.com/mobile-advertising-calculator/ можно ли ему верить? Алсо чему будет равен средний еСРМ и как его рассчитывают? Приложение типа "игра для даунов". Бесплатное. В среднем пользоветель склоняется к просмотру ~5 видео реклам за сутки и постоянно на экране крутится баннер. Возможно для такой системы посчитать профит в единицу времени на 1000 пользователей, если положить что пользоветль сидит в день по 2-5-10 минут? Опять же, тот калькулятор что я привел выше вообще близок к реальности?
Гайз, в общем угораздило напроситься на собеседование junior ios, u know. Подумал , что хуйня. Ну по сути так и есть , но мне тестовое выписали. Оно не то чтобы сложное - недотетрис (буквально причем - т.е просто анимация падающих фигурок), но я не знаю с какой стороны подойти - coregraphic, всякие кокоа или еще что-то. Подскажите путь наименьшего сопротивления. Просто я с виртуальной машины буду хуярить - а там обычный хеллеворлд тупит на икскоде, не то что сложное приложение. В общем ткните пальцем , очень прошу
>>718083 Наименьшее сопротивление - CAShapeLayer и UIBezierPath Чуть сложнее - CoreGraphics и SpriteKit. CAShapeLayer и CoreGraphics - одинаково медленные (но для примитивов подойдут) SpriteKit - быстрый, но с ним я не работал. . Я в последнее время для быстрой отрисовки чего-либо, использую данную либу: https://github.com/memononen/nanovg Она довольно легко прикручивается к GLKit'у и позволяет рисовать в 60fps всё что хочешь. Если её прикрутишь - все вообще охуеют как ты можешь. Но хз, нужно ли оно в контекте тестового задания . Для начала напиши движок своего тетриса с расчётом фигур их положения и перемещения на экране, потом запили модуль рендерера и говори ему что рисовать. Таким образом ты сможешь разнести логику и графику в разные модули и легко, в случае чего, поменять метод отрисовки.
Если требуют нативными вьюхами / слоями - шли их нахуй. Серьезно, они наглухо поехали. Нет на планете такой задачи, которая оправдает такое собеседование, Пусть они хоть кварки препарируют, все равно дно. Выдай говно - назови фамилии.
>>718149 >Нет на планете такой задачи, которая оправдает такое собеседование Вообще-то есть. Далеко не все игровые движки ложатся на UIKit гладко. Большинство представляет из себя полноэкранный рендерер, с полностью своей логикой интерфейса, взаимодействий и всего-всего. А иногда тебе надо отрисовать какую-то анимированную сложную хуйню внутри uiview и не ебать мозг.
>>718083 гайз, это я. спрайткитом делаю. относительно просто - ну т.е по-крайней мере представляю примерно что делать. но я не соображу за координатную сетку на IOS. Поясните пожалуйста, что за фигня с ней? те кто понял о чем я
>>718351 >>718351 Да нормальная координатная сетка - сверху слева начинается, как и везде. Может тебя смущает соотношение пиксель-поинт, которое зависит от разрешения матрицы аппарата?
Тут под OS X вообще пишут? А то ни разу ответа не получил.
Как правильно организовать ремасштабирование элементов при увеличении/уменьшении окна? Особенно, если этих элементов много, и они ещё и высоту свою выставляют в зависимости от количества текста и имеющейся ширины (как посты на двоще, в общем). К тому же, вся эта хрень является documentView в NSScrollView.
Пока что сделал так: 1. вью, который documentView, получает эвент viewDidEndLiveResize, где он получает новую ширина как self.superview.bounds.size.width 2. Первому сабвью передаётся эта новая ширина и отправная точка по оси y, они там сами заново считают высоту textContainer'а для помещения всего текста. Они изменяют свой фрейм в соответствии с новой шириной и высотой, и возвращают свою высоту. 3. Собственно, получив высоту в пункте 2, отправная точка по оси y изменяется. Пункт 2 повторяется со следующим сабвью, пока все не кончатся. 4. этот documentView изменяет свой фрейм (высоту) на то значение, какой получилась нижняя координата последнего имеющегося сабвью, чтобы скролл верным был.
Но чую я, что хуету какую-то наговнокодил, должна же быть какая-то галочка "сделать хорошо". Или нет?
И второй вопрос по NSTextView. Как его правильно ресайзись на новую ширину, оставив минимальную необходимую высоту? Приходится так: 1. Меняем у фрейма ширину Ну, то есть, создаём новый фрейм, в котором только ширина отличается, ведь он read-only 2. Получаем размер textContainer'а 3. Меняем у фрейма высоту. Вот эта вот часть с двумя сменами фрейма меня настораживает.
>>718391 В первом случае ты создаёшь прямоугольник (RectMake), во втором - точку (PointMake). Прямоугольнику ты задаёшь верхнюю левую координату, с точкой то же самое. Т.е. CGRectMake(0, 0, 50, 50)]; - прямоугольник, расположенный в нулях. CGPointMake(0, 0) - такая же точка, в нулях.
>>718413 Тейблювью не катит, потому что элементы могут быть разной высоты. Коллекция же, по сути, то же самое, не?
Пытался сейчас с constraint'ами но хрень какая-то получается: либо ругается на наличие двух конфликтующих (Autoresizing и та, что я добавил, чтобы был на каком расстоянии от вышестоящего). Если убрать авторесайзинг - вообще не рисует. Всякие intrinsicContentSize и fittingSize (systemLayout... только в UIView есть, т.е. айос) по нулям постоянно.
>Как это обычно на ios делается Так мне не на айос же.
>>718463 >Пытался сейчас с constraint'ами но хрень какая-то получается: Ну блять, готовь констрейнты аккуратно, понимая что ты делаешь и ругаться не будет. Или по-твоему автолайаут делали идиоты и он не нужен? 99% интерфейсов на macOs/ios сейчас это автолайаут или производные от него (вычисления systemLayoutFittingSize, и натягивание получившегося размера на фрейм нужной вьюхи)
Need for Help (eron don don)Аноним16/04/16 Суб 17:04:25#497№718499
Гайз, обновляю сообщение.
в общем угораздило напроситься на собеседование junior ios, u know. Подумал , что хуйня. Ну по сути так и есть , но мне тестовое выписали. Оно не то чтобы сложное - недотетрис (буквально причем - т.е просто анимация падающих фигурок),. Не знал с какой стороны подойти. Посоветовали SpriteKit. В принципе направление действия понял : вот сейчас думаю, как запилить, чтобы динамически создавались геометрические примитивы рандомные.
>>718495 >>718492 >Так бля, вычисляй высоту динамически. Кэшируй если надо. Я ещё раз взглянул на NSTableView, и-таки можно сделать так, чтобы разные ячейки были разной высоты. Почему-то до этого читал, что нет. В общем, буду дальше играться.
>>716072 Не понятно же нихуя для мимохуя. Вот выполняешь какие-то штуки безсчетно а что делаешь не понимаешь. Плюс так с наскока читать ты с вероятность 99% перегрузишь свой и так тугой мозг не нужной хуетой(но ты то не будешь знать, что она не нужна, что тебе ее делать дадут только через года 2)
плюс на новом языке сходу писать сложно. хоть это и онли май проблем.
такая хуйня :
Знаю, что с методами и объектами на обжектив си, работают не так как в с++,. туплю короче.
Хочу блок кода, который делает кубик, превртить в функцию\метод или еще что, чтобы либо в него передавать параметры, либо тупо конструктор для этой хуйни запилить. но эта фигня с методами мозг выносит. гайз, подсобите плз.
>>718794 > решил забить на задержку. подумал, что лучше будет спускать следующий блок, когда предыдущий уже упал и лежит *и будет лежать, пока чейни рядом.
как думаете, на координаты ориентироваться? или у объекта должно быть свойство - on_the_flow?
Если Яблоко в ближайшее время не добавит Vulkan api в OSX/iOS и не сделает Metal opensource то это будет полный провал и еще один гвоздь в гроб, которые забивает Тим Кук все последние годы.
>>718904 может тебе пора уже немного почитать про программирование под ios в целом? Ты будешь крайне хуёвым работником, если будешь действовать только методом тыка, не обладая хоть какими-то фундаментальными знаниями языка и платформы. блок захватывает видимый скоуп в виде поинтеров и может только обращаться к переменным, не переназначая их. Если необходимо изнутри блока изменить какую-то внешнюю переменную - необходим модификатор __block
>>718908 так то ты прав) и я бы так и сделал если бы специально целился на иос. но эта хуйня буквально случайно на голову свалилась. если не прокатит - ладно, но если получится ничего плохого не вижу.
по поводу вопроса : я пробую без таймера сделать. Ориентируясь на коллизии в объекте.
Я к вам снова с вопросом со стороны пользователя. Если в приложении можно кликнуть на что-то, что откроет страницу в сафари, там можно указать какой из табов использовать, нужно ли новый открывать и т.д.? Уже не первый раз замечал, что они хрень какая-то открывается в первой вкладке, удаляя ещё и историю из неё (т.е. не могу нажать назад и перейти туда, где она была). Это у меня телефон глючит, или в приложении криво что-то сделано?
Только что потратил два часа на выяснение того, что если создавать объект UIWindow программно, то окно по умолчанию скрыто. Найс.
Тут уже хуй поймешь кого обвинять, ведь я-то честно прочитал доку до этого! А в ней нихуя не говорилось об этом. Только в ссаном примере создания окна для внешнего экрана можно увидеть, что оказывается, блядь, нужно менять hidden на YES. Ну ебана.
Гайз, поднимаю вопрос снова. Подскажите плз. Что делть с этим дерьмом? Я тут прошелся по всяким форумам и прочему.. Мне надо вынести SKShapeNode - в отдельный поток?
need for help... againCd17/04/16 Вск 16:21:50#525№719258
/// Знаю, что СТАТИК использовать - не есть хорошо, но пока не соображу как пихнуть туда NSArray. И еще нужно стоп воткнуть какой нибуь, чтобы приложение не работало бесконечно.
>>719295 и подскажите один момент важный. я убрал счетчик. arrayfig больше не массив. теперь в voidtester каждый раз снова создается объект и как бэ там и остается - как этот механизм работает, господа?
Вот сделал я два лейбла, оба editable, layout стоит wraps. Указал обоим constraint'ы до верхнего элемета (супервью и первого лейбла, соответственно), отступы слева и справа, а также ширину. На end editing экшн повесил метод, вызывающий [label sizeToFit]. Он берёт и увеличивает их ширину... Разве не должен был перенести на вторую строку и сдвинуть нижний лейбл? Нет же констрейнта высоты, нижний лейбл по вертикали ограничен только в верхней части, а вот ширину я у них как раз ограничил. Изменение размера через setFrameSize тоже ничего не даёт - размер изменяется и всё, никто никуда не двигается.
Мне нужно сделать так, чтобы я изменил (в коде, динамически) размер одного элемета, и все остальные, ссылающиеся на него, автоматически и магически подвинулись согласно указанным констрейнтам. Autolayout вообще это позволяет или мне проще вручную делать?
Need for Help : Most WantedСвятозар Аркадьевич17/04/16 Вск 22:17:56#529№719683
Гайз, тот же парень.
Только вопрос чуть конкретнее теперь :
есть сцена - sprite kit - . я роняю в сцене фигуру. пытаюсь как то мониторить процесс падения по координатам или по свойствам, но походу как то иначе работает...
поделитесь мыслями на этот счет, даже вне контекста с SPRITE KIT
Аноны, можно ли вручную редактировать coredata в xcode? Чет не вижу нужной кнопки, да и в уроках, которые я смотрю, чет нет таких функций. Так же зачем оно тогда надо, если я могу все хранить в переменных?
Гайз, проект удалил, а вот в симуляторе остался мусор. Не то чтобы у меня от этого кровь, но если много наберется будет резать глаза. Подскажите, а то гугл чет молчит. P.s юзаю vmvare, за мак плохо знаю.
Objective-C Programming: The Big Nerd Ranch Guide
iOS Programming: The Big Nerd Ranch Guide
iOS 7 Programming Cookbook: Vandad Nahavandipoor
Matt Galloway Effective Objective-C 2.0
Видеокурсы:
https://www.coursera.org/specializations/app-development
https://www.coursera.org/specializations/ios-development
https://www.youtube.com/user/AlexSkutarenko
Swift - Swift - это новый язык программирования для разработки приложений на iOS, OS X и watchOS, который сочетает в себе все лучшее от C и Objective-C, при этом нет ограничений в совместимости с C. Swift использует паттерны безопасного программирования и содержит современные функции, которые помогают сделать программирование легким, гибким и увлекательным.
Платина:
Что выбрать? - свой проект - swift, работа - objective-c.
Официальная телеграм конфа треда - https://telegram.me/joinchat/CUVruAJ8ceAgYkfeqe_LcA