Этого треда уже нет.
Это копия, сохраненная 10 мая 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
82 Кб, 256x256
Разработка под iOS тред №2 # OP #630631 В конец треда | Веб
Литература:
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
#2 #630634
Бамп.
60 Кб, 1416x1238
#3 #630646
Так, а ну подскажите что гуглить читатать чтобы реализовать такую хуиту и как хранить данные?

Я так понимаю делаю тебльвьюконтроллер, там кнопкой пугу второй экран где разные параметры, от кнопки там пушу в треттий тейблвью со списком говна.

от ячеек с первого я пушу в отдельное окно со списком где как-то кодом показываю массив из 4-5 видов говна что существует.
>>630651
#4 #630651
>>630646

>и как хранить данные?


Очевидный Core Data
>>630670
53 Кб, 1349x865
#5 #630670
>>630651
Ок, создал проект с кордата, надо будет прочитать про него.
Пока что так примерно накидал интерфейс. Алсо почему в гугле используют несколько навигейшн контроллеров?
>>630716>>630774
#6 #630716
>>630670
А не, в пизду, придется книгу дальше читать, знаний короче не хватает продолжать.
33 Кб, 483x280
#7 #630740
>>630621
Аноны, я сделал (+ еще generic функция)

- мимо проходил
#8 #630749
Какое оптимальное число контроллеров в одном storyboard?
И как их лучше связывать, если класть в разные?

Сейчас у меня все контроллеры в одном и Xcode пиздец как тормозит.
>>630758
#9 #630758
>>630749
1) сколько влезает в экран или хотя бы немного просматривается по вертикали;
2) как хош, зависит от конкретного ui.
>>630839
#10 #630774
>>630670
Короче создаю модель AppItems.
Вот вопрос, если у меня у каждогопараметра будет фиксирован лишь тип предмета, но время добавления и прочее свое. То в модели реализуем список массива с типом предметов, верно?
>>630867
142 Кб, 948x640
#11 #630810
Как сделать кнопки и таблицу в QuickLook?
Везде пишут, что нельзя NSView прикрутить к QuickLook.
Но вот на пике все это есть.
#12 #630839
>>630758

>как хош, зависит от конкретного ui.


А ты как делаешь?
#13 #630867
>>630774
В модели хранится вся инфа о предмете.
>>630926
#14 #630926
>>630867
Т.е. по сути я там захуярю массив с фиксированным списком вещей, а ту же дату как мне брать? Если она каждый раз разная? Берется vc там в окне вбивается дата, затем она тупо будет в объект вписываться, в объект модели получается ее надо будет писать?

Я просто хочу правильно сразу освоить все модели создания.
>>630949>>630985
#15 #630949
>>630926
И в чем проблема? Вот псевдо-код.

class AppItems {
var items: Array<AppItem>
}

class AppItem {
var type: AppType
var create: NSDate
var count: Int
}

enum AppType {
case Type1, Type2, Type3
}
>>630954
#16 #630954
>>630949
ебучий свифт но я примерно понял наверное, позавтракаю и покажу
#17 #630985
>>630926
Если я правильно понял и ты используешь кордату то никакого массива нет. Ты в модели данных создаешь entity (сущность) которая соответсвует твоему объекту. Тоесть у него там поля - тип предмета, дата, и остальное. Также крайне желателен уникальный индентификатор каждому объекту, или способ однозначно отличать друг от друга. Соотвественно для этого объекта создаешь класс отнаследованый от NSManagedObject, и связываешь его с сущностью созданой в модели данных. Соотвественно у этого объекта будут пропертя как у сущности - тип предмета, дата, и остальное. Когда тебе нужно добавить - ты создаешь новый объект выставляешь пропертя и все. Если нужно что-то изменить - достаешь нужный объект (вот тут-то и нужен уникальный идентефикатор, но можно конечно и по датам искать и т.п.), изменяешь пропертя и все. Если нужен список объектов то делаешь NSFetchRequest по имени сущности получаешь массив и все. Можно настроить ДЕЛЕГАТ (NSFetchedResultsController) - он будет следить за твоими сущностями и получать сообщения когда добавляются новые, изменяются старые или там удаляются.
>>630992>>631573
#18 #630992
>>630985

>ты используешь кордату то н


Я еще ничего не использую, я еще даже не изучал кордату, думал научусь это делать когда буду это приложение для себя писать. но спасибо за пост. Попробую так потом переделать
>>631008
#19 #631008
>>630992
Блин, а оказывается это легкая фича, на юутубе глянул, по сути создаем ентити с описанием данных, по нему создается самый обычный класс данными и так хуярим
#20 #631013
Почему

Notes notes= (Notes) [_arrayNotes objectAtIndex:indexParh.row];

нельзя записать как
Notes* notes= [_arrayNotes objectAtIndex:indexParh.row];

Зачем нам лишний указатель на класс?
#21 #631014
>>631013
сука ебучая вакаба
>>631015
15 Кб, 395x16
#22 #631015
#23 #631021
>>631013
а почему нельзя? Компилятор вроде не должен ругаться, должен только предупреждение выдать?

ну а вообще у теюяarrayNotes видимо просто массив. Ты в него можешь запихать все, что пожелаешь.
Если не нравится такой исход то попробуй
Array<YourClass> то есть генерик
#24 #631027
>>631013
Это не лишний указатель, а каст к типу. Такого не должно быть, ты там что-то напутал наверное где-то. Также индекссубскрипт используй: notes = _arrayNotes[indexParh.row];
>>631216
#25 #631216
>>631027
Не напутал, так в уроке было, вот и хотел узнать почему
>>631227
32 Кб, 547x111
#26 #631227
>>631216
Тому що тебя наебывают.
Разницу видишь?
>>631235
20 Кб, 533x61
#27 #631235
>>631227
тьфу блядь обосрался я, строчка 98 неверна
вот на пике верная
>>631238
#28 #631238
>>631235
ну ты просто указал индекс массива в старой манере же.
>>631240>>631242
#29 #631240
>>631238
Я к тому, что никаких ошибок без каста к типу не будет.
Только если ты используешь типизированный массив, то компилятор тебе подскажет, что где-то типы не совпали, но скомпилировать и исполнить даст без проблем.
#30 #631242
>>631238

>в старой манере же.


Что? Я в первом пике на 98 строке по ошибке присвоил строке весь массив.
#31 #631573
>>630985
Если кордата за меня пилит модель, то мне не надо доп модель создавать? Допустим в модели там 3 параметра. 1 стринг, 1 инт и 1 дейт.

Вот теперь вопрос, я вроде как сохраняю из текстфилда в дату. Но я теперь немног не понял как единственный этот стринг мне впихнуть в тейбл.

Получается мне где то все таик надо отдельно делать еще 1 класс модели, откуда я буду из модели кордаты брать данные и фетчить в какой-то санный массив и из этого массива уже заполнять таблицу??

Пиздец сложно получается как-то, не?
>>631793
#32 #631793
>>631573

> делать еще 1 класс модели


> Пиздец сложно получается как-то, не?


Да. По-другому никак такое не сделаешь. Тебе нужна модель данных в оперативной памяти чтобы ограничить запросы к бд. Контроллер может напрямую лезть в кордату и обойтись без класса модели-контейнера, но это не комильфо. Просто тебе же кор дата для твоей изначальной задачи не нужна же. Если ты просто табличку хочешь сделать. У тебя должна быть модель где в каком-то контейнере ссылки на модельки твоих вещей, должен быть тейблвьюконтроллер который таскает модельки вещей из модели-контейнера и отдает их в тейблвью. Это потом уже если тебе нужно чтобы данные сохранялись нужно подключать кордату, и хранить там.
Сделай сначала без хранения (тоесть без кордаты). Потом допили хранение на плистах (например) или там в обычных файлах, потом сделай на кордате и посмотри что проще.
>>631841>>631936
#33 #631841
>>631793

>Потом допили хранение на плистах (например


как вариант можно в юзерсдефолт йоба.джипег
151 Кб, 523x290
#34 #631936
>>631793
Круто, спасибо, получается все таки в правильном направлении себе мышление поставил. Алсо еще маленький вопрос. Возникла проблема, раньше когда создавал классы там от вьюконтроллера или тейблвью то генерировался нормальный шаблон типа пика, а сейчас пустая хуита по сути без втюдидлоад, бещ интерфейса наверху и т.д.
>>631943>>631955
#35 #631943
>>631936
Там сам напиши, в чем проблема?
#36 #631955
>>631936
Галочку где-то не поставил, или наследуешь не от того.
>>631974
#37 #631974
>>631955
Да от того, дадно хуй сним. Голова кругом от всего, начал делать и запутался, надо было делать прогу снизу вверх, а не сверху вниз
>>632069
#38 #632069
>>631974
Короче, почему на видосиках и в книжках при создании Сreate NSManagedObjectSubclass создает только huy.h и huy.m с нормальными пропертями, а у меня создает помимо тех двух еще huy+CoreDataProperties, где и лежат эти проперти, а не в тех стандартных huy.h, это нововведение такое?
107 Кб, 758x442
85 Кб, 775x286
#39 #632181
Сука, заебали, каждый везде по разному пишет приложения. А ты сиди как даун ковыряйся, одни там добавляют кордаты фреймворк, даже в созданный проект с ней, другие не добавляют. Одни в делегаты прописывают какие-то настройки, другие нет. Один через id delegate в контроллере чето там делает, в соседней статьей вообще все по другому, заебался.

Короче, вот так я сохраняю данные в кордату, правильно блядь или нет? 1 пик
1)Импортирую ебаную пропертю
2)Прописываю эти проперти
3)В экшене кидаю данные в кордату

Мне вообще обязательно везде в пропертях указывать контекст, модел и персистент в каждом классе?

Второе.
Теперь я хочу вывести эту парашу в тейбл.
Как мне из массива вытаскивать данные? Чтобы я потом их нормально по ячейкам распихал? У меня ненависть от интернета и то как везде разное и противоречивое дается
>>632184>>632212
#40 #632184
>>632181

>Как мне из массива вытаскивать данные?


Через биндинги
110 Кб, 776x440
#41 #632195
Cука, а в другом туториале вот так данные пишут, как правильнее будет? и зачем целый метод городили для этого? Господи как все просто было с калькуляторами всякими, а тут сложности начались.
>>632219
#42 #632202
сука пошло оно нахуй все говно ебаное крашится мамку ебал сука мразина рукоблуд ссанина

блядь, делаю все как надо, как написано, пытаюсь сам разобрать нахуй полдня это ебучее говно пытаюсь понять как записать и считать с ебучей кордаты сука пидорасы, везде запутано блядь, пиздец бомбануло
40 Кб, 600x600
#43 #632207
>>632202
Ну так, разработка под iOS для интелектуальной элиты. Не каждому дано.
>>632213
#44 #632208
>>632202
храни просто json в файлах и не парься (знаю приложение с >200k скачиваний,
которое так и делало)
>>632213
#45 #632212
>>632181

>Как мне из массива вытаскивать данные?


Пишешь абстрактный класс, от него наследуешь уже реализацию протокола ArrayValuesProtocol и реализуешь функционал чтения.
Ну а дальше как и тебе ответили - биндишь к своему протоколу и контроллеру: контроллер делегат и никаких проблем. Не забывай только в dealloc'e вызывать очистку буферов промежуточных, чтобы стэк не засорять.
168 Кб, 849x740
105 Кб, 854x431
#46 #632213
>>632207
Блядь, обидно, те же алгоритмы и cs я без проблем понимаю, а тут я запутался от изобилия информации.

>>632208
Я вобщем скачал работаю вариант и его и буду редактировать под себя.
Правда у них почему то без managedsubclass сделано, я не знаю насколько это критично, наверное все таки я переутомился.
530 Кб, 1180x1468
#47 #632219
>>632195
>>632202
Вот, полезнее будет, чем самому копошиться
>>632262
#48 #632262
>>632219
Coredata хорошо описана у Aaron Hillegass
#49 #632408
Может кто нибудь кому не трудно напишет за 10 минут этот пример с тейблвью и кордатой и добавление элементов? Хочу посмотреть как вы такое делайте.
>>632464
#50 #632464
>>632408
>>632408
Завтра найду точно. У меня есть тестовое задание, которое я делал.
>>632479
#51 #632479
>>632464
Спасибо, надеюсь оно не сложное будет?
>>632616
#52 #632616
>>632479
http://rghost.ru/private/6GzN9xJvZ/9d177a3b66a977aecd2fac6e8f02b688
Вот, ссылка работает 24 часа.
Задание несложное. Там кордата и просто базовые моменты.
>>645266
#53 #632667
Кто нибудь курсами скутаренко пользовался? Есть смысл делать зд базового уровня? А то супермэна и мастера я там не тяну?
327 Кб, 1920x1080
#54 #633612
Народ, есть желание ещё одну телеграмм-конфу запилить, без того ужаса, что твориться в текущей? Для обсуждения мобильной разработки, iOS и всего связанного, ну и немного за жизнь кодерскую.
Сейчас там срачи, вайпы, мини-драммы, аттеншнвхоринг и прочий флуд.
ОЧЕ хочется увидеть здесь настоящих iOS-разрабов.
#55 #633617
>>633612

> срачи, вайпы, мини-драммы, аттеншнвхоринг и прочий флуд


Это синонимы слова "конфа". Без анонимности нормального общения быть не может. И естемтвенно анонимность его не гарантирует.
>>633618
#56 #633618
>>633617
Да нифига, от админов всё зависит. Если банхаммером ебашить туда и сюда, то может быть останется мало кого, зато конфа будет какое-то отношение к разработке иметь.
>>633619
#57 #633619
>>633618
и каждому новому участнику конфы устраивать собеседование, лол.
#58 #634133
>>633612
Вот например >>627689
>>634452
#59 #634452
>>634133
спасибо!
#60 #634519
>>633612

>Для обсуждения мобильной разработки, iOS и всего связанного


Нахуй надо говорить о кодинге не в рабочее время, а обычные вопросы и в этой конфе обсуждают. если нет вопросом - пиздим, просто ты унылое хуйло, посикал тебе в ебальничек. Как ты вообще на борды попал.
>>634588
#61 #634588
>>634519
не пробовал в рабочее время - работать?

p.s. все ваши конфочки хуйня по определению
>>634600
#62 #634599
можно ли кодить под айос без продукции эппла?
>>634602
25 Кб, 376x477
#63 #634600
>>634588

>не пробовал в рабочее время - работать?


this

>p.s. все ваши конфочки хуйня по определению


Не соглашусь, обмен опытом полезен. Просто у них состав конфочек из людей, не имеющих отношения к программированию. Совсем не понятно, зачем вообще ссылку на эту конфу постить в шапке треда. Можно было бы лучше ссылку на слаку засунуть (та, что выше была) или даже на слаку cocoa-developers, чтобы серьезно всё было.
>>634665
104 Кб, 512x512
#64 #634602
>>634599
Хакинтош - это установленная OS X на не-эпловский комп. Вместо девайса можно использовать эмулятор, встроенный в XCode. Я так работал месяца 3-4, пока мне мак не выдали за выдающиеся заслуги (шучу, просто я заебался хакинтошить и забрал комп начальника).
>>634615
#65 #634615
>>634602
Зашел и переебал ему, отжав мак?
>>634632
#66 #634632
>>634615
- Э, слышь, ты чё за маком сидишь, пидор штоле? Давай сюда. О, заебись.
#67 #634665
>>634600

>слаку засунуть


Скуче\ное говно от хуесосов, которые тоже ничем не занимаются, к тому же еще и дохлая конфа.

>слаку cocoa-developers,


анальные ограничения, там даже блядь мат запрещен
>>634706
#68 #634706
>>634665
Нахуй иди, долбоеб. Сделай свою конфу, покажи, как надо, чтоб все ахуели.
>>634789
#69 #634789
>>634706
Так это ты хуесос тут ноешь, мол конфа хуевая кококо одно говно, надо новую серьехную создавать! Вот и пиздуй в свой петушиный уголок. Есть конфа сиди - не нравится ->уебывай.
31 Кб, 246x197
#70 #635029
Куда пропала вся документация в pdf с сайта эппл?
https://developer.apple.com/library/mac/documentation/
Что теперь качать ссаные drm epub из ibooks?
>>635066
9 Кб, 200x191
#71 #635066
>>635029
У эппл была документация в pdf?
>>635106
106 Кб, 881x571
#72 #635106
>>635066
Была...
Теперь остались только pdf на японском
Вот к примеру:
https://developer.apple.com/jp/documentation/KeyValueCoding.pdf
Если же заменить в адресе jp на en то пишет что страница не найдена.
В iBooks только HIG и Obj-C/Swift книжки от эппл, а https://itunes.apple.com/us/author/apple-developer-publications/id409921415?mt=11
У меня iBooks открывает белую пустую страницу.
#73 #635332
Посаны, чем отличается alloc init от new?
>>635365>>635860
#74 #635365
>>635332
Ничем
>>635596
#75 #635596
>>635365
есть разница. на хабре даже статья целая была.
>>635604
#76 #635604
>>635596

>alloc init от new?


конкретно между
ƒ = [F new];
и
ƒ = [[F alloc] init];
никакой.

А если захочешь повыебываться типа
ƒ = [F alloc];
ƒ = [ƒ init];
то это другой вопрос
>>635608
#77 #635608
>>635604
сорян, не так прочитал
посомтрел как new переопределен
#78 #635683
>>630631 (OP)
Почему при работе с подсами надо открывать воркспейс, а не xcodeproj?
>>635700>>636022
#79 #635700
>>635683
Нахуя? в сонсольке пишешь pods install и не ебешься
>>635996
#80 #635860
>>635332
1. Эпловский конвенш
2. Кастомный инициализатор
#81 #635996
>>635700
Так если потом проект открыть он не определить под, только если воркспейсом
#82 #636022
>>635683
Если используется воркспейс (это не обязательно, только тебе прийдется вручную подключать библиотеку в проект) то библиотека не интегрируется в сам проект, а хранится где-то отдельно. Таким образом в воркспейс можно добавить несколько проектов и все они будут использовать одну библиотеку. Но уже нужно загружать воркспейс что-бы все подключилось.
>>636518
#83 #636518
>>636022
Так в проджекте нихуя не работает, делаю pod init, пишу нужные мне поды, пишу pod install
#84 #636532
Когда уже появится Programming in Swift от S. Kochan в pdf?
>>636739>>636756
#85 #636739
>>636532

>S. Kochan


Кто такой, чем знаменит?
>>637186
#86 #636756
>>636532
Как только ты справку эплов по нему осилишь.
>>637186
#87 #637186
>>636739
http://www.informit.com/authors/bio/2923E8FF-1126-4011-9793-4C6731BF6FD3
>>636756
Я же не индусская макака чтобы это кривое говно с вырвиглазный шрифтом разгребать.
>>637608>>637624
Разблокировка по отпечатку пальца #88 #637516
Кто-нибудь работал с LAContext?
Все API реально ограничивается методам canEvaluatePolicy / evaluatePolicy?
Ничего больше я сделать не смогу (типа создать отдельный образец для моей программы)?
#89 #637608
>>637186

>Я же не индусская макака чтобы это кривое говно с вырвиглазный шрифтом разгребать.


>читает книженции вместо официальной документции


Ну хз.
>>637990
132 Кб, 873x508
#90 #637620
Блядь, почему он не видит? Я ж хэдер импортировал

AFHTTPRequestOperationManager
>>637626
315 Кб, 2048x1536
#91 #637624
>>637186
Кокие токие вырвиглазистые шрифты?
>>637990
#92 #637626
>>637620
Тебе нужно импортировать фреймворк, а потом хедер. Вот так:
import <AFNetworking/AFNetworking.h>
>>637700
#93 #637676
Parse.com скоро закроют, предлагайте свои варианты хорошого бэк-энда
>>637681>>640568
#94 #637681
>>637676

>конец января 2017


>скоро


Кек.
415 Кб, 1920x1200
466 Кб, 1920x1200
#95 #637700
>>637626
Cпасибо, но я разобрался, суть в том что в новом нетворкинге нет такого метода вообще, там юзается сешн менеджер.

Вообще мне нравится урок, интересно такие приложения делать. Но вот беда, я вкатился недавно в кодинг, это нормально что я не понимаю пока как это все работает?
В смысле я понял что получаем и получаем запросы типа объектов, но вот как все это по 10 раз в дикшнрис впихивается и прочее - со временем ведь такое пройдет?
>>637991
#96 #637990
>>637624

> извращается с epub на айпаде


Ясно. Это справочная документация, а не учебное пособие.
>>637608
Официальная документация написана индусскими макаками для индусских макак.
#97 #637991
>>637700
Как у тебя глаза не вытекают, от белого фона на весь экран? Монитор небось как прожектор светит.
>>638000>>638057
#98 #638000
>>637991
От темного фона пидорасит точно также, но не так сразу.
>>638030
#99 #638030
>>638000
Нейтральный серый.
#100 #638057
>>637991
А почему должны вытекать? Зрение 1.0
#101 #639307
>>630631 (OP)
Платина 2:

Чем отличается app-development от ios-development?
>>639316
#102 #639316
>>639307
App-development не подразумевает конкретной (или просто одной) платформы.
#103 #640568
>>637676
Реквестирую сервис с аналогом CloudCode и Jobs у парса
#104 #640839
Надо делать айос конфу чисто для айосников, без всяких левых даунов и людей не связанных со сферой айос. Эту конфу окончательно засрали, есть кто возьмется за это или мне делать ее?
#105 #640898
Всем привет, я начинающий программист, в качестве тренировки решил создать бесполезное видеоприложение. Есть вопросы касательно сохранения/хранения/доступа к видео, был бы очень рад, если бы кто-нибудь по этому поводу меня проконсультировал. Пишу на swift, но obj-c более-менее знаю, так что хранилище могу написать и на нем.
Skype: roba_rus
#106 #641704
>>632202
Лол, ты ещё Андроид не пробовал.
>>642204
#107 #642204
>>641704
под андроид лишь дауны кодят которые мак не могут купить, а ебать себя жопу до выхода андроид студии им особенно нравилось. короче платформа для долбоебов.
>>642293
#108 #642293
>>642204
Программирую под Android в прочим и под iOS на макбуке, ну и где твой бог?...
>>642337
#109 #642337
>>642293
молодец, за щеку теперь возьми. нищиеб со старым маком
>>642365
#110 #642365
>>642337
Нет, старый мак их говностудию не потянул бы.
>>642407
340 Кб, 999x600
82 Кб, 649x250
#111 #642407
>>642365
Если по честному, Xcode (в плане рефакторинга) сосет у Android Studio, да и у Eclipse тоже.
В той же Visual Studio (даже без решарпера) больше функций для форматирования кода.

Советую попробовать адекватную IDE для разработки под iOS (на том же движке что и AS).
https://www.jetbrains.com/objc/
>>643243>>643280
#112 #643243
>>642407
Что это за параша? Она же на яве написана. Пользоваться ява софтом в 2016 на маке - уебанство.
>>643274
#113 #643274
>>643243
Слушать советы опарыша с двача в 2016 - вот уж настоящий моветон.
>>643277
93 Кб, 397x302
#114 #643277
>>643274
Пользоваться говном на яве в 2016 - вот уж моветон.
>>643279>>690837
#115 #643279
>>643277
Копировать чужой текст изменяя пару слов - вот уж моветон.
#116 #643280
>>642407
Блядь, я скорее в vim-е писать начну, чем на этом тормозном говне (которое при всём этом по сравнению с xcode простой текстовый редактор).
>>643353
#117 #643353
>>643280
Ананас ты не поверишь, AppCode еще и платный.
>>643591
#118 #643445
>>630631 (OP)
Swift 2 реально ли скомпилить под OSX 10.9?
https://github.com/apple/swift/
>>645333
#119 #643591
>>643353
А смысл тогда в этом платном редактор текста?
>>643645
#120 #643645
>>643591
А смысл тебе что-то объяснять если ты не видишь разницу между IDEA и текстовым редактором...
#121 #645088
Хочу начать разрабатывать под iOS. Задам платину: в 2016 на objective-c или на swift смотреть?
Интересует фриланс, работа в Мск и области (офис).
>>645145
#122 #645145
>>645088
Учи objective-c.
>>647043
41 Кб, 1059x765
#123 #645266
>>632616
Анон, подскажи почему на твоих .xib в IB не отображаются элементы?
22 Кб, 957x29
20 Кб, 956x36
#124 #645333
>>643445

>C++ 59,8%


>Swift 36,7%


Кек.
То есть все отличие Swift от Obj-C это использование C++ вместо C в качестве основы?
https://github.com/gnustep/libobjc2
>>645393
#125 #645393
>>645333
Ты совсем ебанутый?
>>645527
#126 #645527
>>645393
Что там ебанутого, ебанутый?
>>645555
#127 #645555
>>645527
1) Какая связь между языком и конкретным рантаймом?;
2) Это не эпловская реализация рантайма, точно не известно на чём православно-кошерная версия написана;
3) Не понятно почему использован именно C++ - Swift не поддерживает его ABI, всё равно в сишные простыни писать автор видимо из 70-х вылез.
4) Ты ебаное животное, вот.
>>645606
#128 #645606
>>645555

>Это не эпловская реализация рантайма



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/

Про Objective-C все и так известно

>It’s a superset of the C programming language and provides object-oriented capabilities and a dynamic runtime


https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html

Еблан тут только ты.
>>645635
#129 #645635
>>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% пейсателей под моб. платформы, но не настолько же.
>>645654
#130 #645654
>>645635

>Компилятор - да, на крестах. Только на свифте это никак не отображается.


>LLVM-бэкэнд кстати на крестах написан, на нём же и обжс работал.



https://github.com/apple/swift-clang - тут компилятор
https://github.com/apple/swift-llvm - тут LLVM

>Здесь нету рантайма.


>https://github.com/apple/swift/


И что там тогда? Просто куча исходников, которые можно скомпилить в непонятный бинарник?
>>645669>>645672
#131 #645669
>>645654

>https://github.com/apple/swift-clang - тут компилятор


>https://github.com/apple/swift-llvm - тут LLVM


Тут их конкретная версия LLVM и Clang, предназначенный только им изветно для чего.

>И что там тогда? Просто куча исходников, которые можно скомпилить в непонятный бинарник?


>The main Swift repository, which contains the source code for the Swift compiler, standard library, and SourceKit.


А теперь наверни https://ru.wikipedia.org/wiki/Runtime
#132 #645672
>>645654

>https://github.com/apple/swift-clang - тут компилятор


>The source code for Clang, with a handful of Swift-specific additions.


Не тот маленько.
#133 #647043
>>645145
А если уже есть некоторые познания свифта (но с SDK не работал)?
>>648081
#134 #648081
>>647043
без знания SDK можешь разве что мамке хвастаться что ты такой молодца
41 Кб, 777x161
#135 #648641
>>630631 (OP)
Почему алертвью не хочет принимать значение, в логах все отлично выводит, а в алерте - (null)
>>648698
#136 #648698
>>648641
Что ты называешь "значением"? message? Ты где-то в другом месте проебался.
>>648743
#137 #648743
>>648698
значение из кода очевидно что deyailedser.info
Где я проебался, так-то я нигде не проебался. Везде нормально выводит, а в алерт контроллере null, начал гуглить по этому поводу - ответов на стэке нет
>>648744
#138 #648744
>>648743
detailed*

message Же должен выводить мне это значние. простой текст то выводит, а объекты нихуя
>>648770
#139 #648770
>>648744
Значит твой _detailedUserList не существует в момент создания алертвью. Или с .info проблемы. В коде на скриншоте все ок, где-то в другом месте недосмотрел.
#140 #653297
>>630631 (OP)
Возможно ли закончить анимацию и перейти в completion раньше чем она дойдет до конца?
К примеру если у меня вью улетает за пределы экрана мне нужно сделать if и перейти к completion. Как это сделать?

[UIView animateWithDuration:0.5 animations:^{
ImageView.frame = frame;

if (ImageView.frame.origin.x <= 0)
перейти в completion

} completion:^(BOOL finished) {
[ImageView removeFromSuperview];
}];
>>653393
#141 #653393
>>653297
Нельзя. Тебе нужно как-то следить за положением вью (KVO например) и когда вью вылезет за экран или просто отменить все анимации, или назначить ему новую анимацию в "правильную" позицию (так чтобы оно не выходило за экран) с очень короткой длительность и правильно выставлеными опциями (основное это включить UIViewAnimationOptionBeginFromCurrentState).
>>653597>>654171
#142 #653597
>>653393
Ой нахер, просчитаю лучше точку.
#143 #654171
>>653393
C KVO не катит. Он вызывается только в начале анимации и в конце.
>>654180
#144 #654180
>>654171
А нет. Вообще только в конце, прост 2 анимации висело.
63 Кб, 453x604
#145 #654765
Нуб ИТТ.
Хочу сделать проверялку статуса какого-то удаленного сервера, онлаен он или нет, или может данные какие-то с него считывать короткие (как вариант определения статуса). Так вот, как это сделать? Это вообще просто делается или нужно пердолиться ради такой простой, казалось бы, задачи?
Гуглом уже пользовался, там нашел НЕХ с названием Reachability, как я понял, она проверяет наличие интернетов, но если эту НЕХ можно использовать для моей цели, то собственно как?
Такие дела, пикрандом.
#146 #654790
>>654765
Попробуй пинговать. В общем случае это наверное не решаемо, так как сервер может быть не доступен для обычного внешнего воздействия, тоесть все подключения к нему организуются с помощью специальных логин серверов, а напрямую, к примеру, пинг послать нельзя. Нужно в каждом случае смотреть как определять доступность. Может разработчики сервера предоставляют какое-то API для проверки статуса. Reachability вроде не совсем то, так как там проверяется только возможность отослать данные на сервер, но ответ от него не проверяется.
#147 #655399
>>654765
Ты можешь проверить только ответ на какой-либо запрос, "онлайн" ли сервис это неформально.
>>655547
#148 #655456
>>654765
1. Берешь любую http библиотеку (http client library)
2. Отправляешь запрос на url на сервере
3. Проверяешь http код ответа (http status code)
4а. Если этот код 200 – сервис онлаен
4б. Если этот код 5хх – сервис оффлаен
4в. Любой другой код – выбирай другой url, этот не годится

мимовебчелядь
>>655547
#149 #655547
>>655399
Ну понятно, просто задачу очертил.
>>655456
Интересно, попробую.
#150 #656787
Есть ли какая-то вменяемая альтернатива interface builder? Просто это такое говно что даже не понятно, какой даун мог додуматься до такого. Нечитаемые мердж конфликты, куча часов поисков багов из-за одной спрятой галочки. Было бы круто если бы был какой-нибудь фреймворк где в файлах типа xml делаешь разметку, а потом можно было бы его инстанциировать как вьюху.
>>656826
#151 #656826
>>656787

> в файлах типа xml делаешь разметку


XIB файлы это и есть xml-файлы с разметкой.
>>656834
#152 #656834
>>656826
Но они генерируемые, и одинаковый в интерфейсе лейаут дает разные xib, формат нечитабельный, куча левой инфы.
>>656847>>657398
#153 #656847
>>656834
Ну и что что "генерируемые"? Открываешь и пишешь свое. Левую инфу не пишешь, прописываешь только то что надо.
#154 #657398
>>656834
а ты в ксибе попробуй добаввь в контроллер табличку и в ней настрой хидер для этой ттаблички из интерфейс билдера без редактирования непосредственно xml кода.
#155 #662537
Ну что вы, ананасы?
Я вот в новом проекте полностью перелез на Realm https://realm.io/
Уже полгода - полёт нормальный.
На кордате было три проекта - остадочек неприятный остался от кучи прослоек и её стэка.
А с риалмом всё работает гладко и с минимумом ебли.

Еще освоил fastlane tools для бетатеста и выливания скринчиков в аппстор - удобная хуитка.

У самих то какие новости?
>>665900
#156 #663873
Няши, ответте залетному. Хочу перекатиться на свифт (с жабы), но сильно не хочу терять кроссплатформенность. Есть варианты как можно оборачивать приложения на свифте для винды? Ведро не интересует, мобильными приложениями не балуюсь.
>>663970
#157 #663970
>>663873
Нет. Для этого нужна реальзация фрейморков (foundation, cocoa) под win, а ее нет. Там какие-то хуи что-то пилили вроде, но нормального ничего нет. Есть еще remobjects silver - но там используются системные фрейморки (.NET для win, джавовские для андроида) тоесть общего очень мало.
#158 #665736
А есть что-нибудь на русском языке по iOS и swift? Английский начал изучать уже, но пока не на том уровне чтобы понимать написанное.
>>665749>>668674
#159 #665749
>>665736
Нормального ничего нет. http://swiftbook.ru/doc
#160 #665900
>>662537
Перекатился наконец с обжыц в свифт, с нетерпением теперь жду выхода 3.0 и кроссплатформенных тулз, потому что про другие языки можно будет забыть.

Такая-то годнота.
#161 #668674
>>665736
В Айтюнс курсы по Свифту от вшэ и ещё книга Усова
#162 #669345
Перекатывался ли кто с ведра?
#163 #669609
Какие плюсы и минусы в сравнении с ведроид дебеоомпентом?
Знаю java se, выбираю куда дальше катиться:ведро или свифт
>>669619>>670912
#164 #669619
>>669609
Не знаю. Раньше андроид был говном, но с появлением студии всё улучшилось.
#165 #670502
Как мне сделать в swift файле cast сишной структуры с хитрыми битовыми полями на Array<UInt8> массив? (Очень надо). Битовый размер совпадает. Пробовал и as! конструкции, и withUnsafeMutablePointer - не получается ничего хорошего. Bridge настроен.
>>676628>>699832
83 Кб, 766x689
#166 #670586
Антоны, срочно нужно накидать простенькое приложение, а тут в теме не увидел ни факу, ни ссылок.
Мне нужен хороший текстовый гайд по iOS-разработке с примерами в духе "пишем простенькое меню" и т.д., в идеале - на русском.
Что посоветуете?
>>670607
59 Кб, 500x355
#167 #670607
>>670586

>Что посоветуете?

#168 #670912
>>669609
Плюсы: больше зарабатываешь.
Минусы: нужен Мак.
#169 #671493
Глупый вопрос конечно, но вот с чего начинать изучение swift ? в книге Усова конечно все хорошо написано , но вот практики там совсем нет . Придумать свое приложение и пытаться его реализовать ?
>>671500>>671998
#170 #671500
>>671493
Пробуй написать что-то. Или попробуй пройтись по iOS Programming: The Big Nerd Ranch Guide, только на свифте пиши. Или иди по оглавлению и гугли какие-то статьи по темам на свифте. Смысл в том что чтобы написать что-то нормальное нужно иметь хотя бы приблизительное представление о том про что в той книге написано.
256 Кб, 450x320
#171 #671960
Программач, писал приложения на ведроиде и всякую явасриптовую еботу, надо сделать приложение под айфон, что мне с моим опытом лучше изучать: свифт или обектив?

Склоняюсь к свифту, но переживаю, что по нему не найду достаточно руководств и ответов на стековерфлоу. Как там оно?
>>671998>>672264
51 Кб, 1024x1024
#172 #671996
Помоги с таким вопросом.
Простые приложения писал с использованием сториборда, ну а поскольку не так давно сел за ios, то сразу начал со свифта.
Теперь встала такая задача: нужно научиться делать UI без сториборда, а полностью программно, чтоб автолэйаут работал еще норм, со всеми этими констрейтами. Какие есть годные глубокие туторы на эту тему? На свифте. Ну и чтоб информация актуальная была, то бывает что туторы из 2014-ого года уже не работают.
>>671997>>672093
#173 #671997
>>671996
А какая разница Свифт, Хуифт или пизда твоей мамаши? Принципы одни и те же.
>>672045
#174 #671998
>>671493
Да, пиши приложение
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html
>>671960
Платиновый вопрос. В ближайшие 2-3 года придётся знать оба, т.к. переходный период.
Если нуб в программировании, то Obj-C концептуально легче.
>>672344
#175 #672045
>>671997
Да похуй, свифт не свифт. Дай ресуров годных.
#176 #672093
>>671996
Какие еще туторы могут быть? Все тоже самое, только ты как ебанат пишешь все в коде вместо использования IB.
>>672117
#177 #672117
>>672093
IB иногда подключивает, или имеет какую-тос крытую логику (подчеркиваю - ИНОГДА, но этого достаточно чтоб попробовать проектировать через код). Например если я настрою динамический скролл просто для вьюхи - то ок работает, но если у этой вьюхи будет навигатион контроллер, но скролл уже не работает, либо работает как-то не так. Вот примеры:
http://stackoverflow.com/questions/34663956/scrollview-with-navigation-bar-auto-layout
https://www.reddit.com/r/simpleios/comments/3vpj06/uiscrollview_adds_spacing_the_size_of_the/
Да, им дали какието советы, но они не решили проблему до конца.
>>672301>>676312
#178 #672264
>>671960
React Native
>>672344
#179 #672301
>>672117
Я пришел к тому что все делаю через код, есть корпоративная закрытая библиотека с помощью которой можно накидать интерфейс даже пожалуй быстрее чем с IB и при этом всегда точно знаешь почему и что происходит.
>>672386
104 Кб, 250x180
#180 #672344
>>671998
Ну, мне не надо знать оба, мне надо одно приложение сделать, понимаешь?
>>672264
Не-не, нахуй, подозреваю, что там инфы ещё меньше, чем по свифту.

Народ, так по свифу есть хороший учебник?
>>672537>>672664
#181 #672386
>>672301
Подскажи хотяб откуда двигаться? Туторы, книги, просто референсы. С IB я пожалуй на среднем уровне работаю, свифт понятен, сам икскод тоже ориенртируюсь.
#182 #672537
>>672344
конечно есть, яблочный swiftbook. Если недостаточно хардкорно то читай блог NatashaTheRobot
>>672571>>672664
#183 #672571
>>672537
Бля, чё за кликбэйт, нет там никакой Наташи!
#184 #672664
>>672344

>по свифу есть хороший учебник


Пока эппл будут каждые пол года релизить новый свифт, нормальных учебников не будет.
>>672537

>яблочный swiftbook


Это не учебник, это справочное пособие для индусских макак.
>>676949
#185 #676312
>>672117
ебать. у чувака по верхней ссылке проблемы с тем что у него скролл вьюшка прибита сверху к топ лэйаут гайду, а нужно было просто к верху вьюшки.

бесят такие пидоры. лень разбираться с билдером и начинаете хуярить какоето говно в коде. переебал бы
#186 #676628
>>670502
Эх, а бампану-ка я, анонцы. Мне все еще надо наложить эту структурку. Структурка сама себя не наложит. Пока вы молчите, я решил вручную перепедалить весь проект на Objective-C.
>>676661>>676917
#187 #676661
>>676628
Что значит "битовый размер совпадает"? У объектов objC и следовательно скорее всего у свифта куча дополнительной инфы (полей). Их нельзя просто кастом превратить из обычной структуры. Можно попробывать из сишного массива (кастишь структуру в указатель на char или что там) собрать CFArray, его скастануть в NSArray (там специально сделано что кастить можно), а уже его скастить в свифтовский массив. Но скорее всего получится полная хуита. Вся проблема в том что массивы в Foundation предназначены для хранения указателей, тоесть в CFArray (как и в NSArray) нельзя положить чары (или инты) а нужны указатели. Тоесть твою структуру нужно кастить не в указатель на чар, а в указатель на указатели на воид. И дальше жонглировать указателями на войд, и в самом конце попытаться скастить в UInt8. Тоесть последняя строка должна быть что-то типа var swiftArray = nsArray as AnyObject as [UInt8] - но я не уверен что у тебя на каком-то моменте все не наебнется.
>>677321
#188 #676917
>>676628
http://stackoverflow.com/questions/32606989/converting-an-unsafepointer-with-length-to-a-swift-array-type

это пробовал? если не работает, то пили сюда кодик
>>677321
#189 #676949
>>672664

>Пока эппл будут каждые пол года релизить новый свифт, нормальных учебников не будет.


Золотые слова. Свифт первый и второй – это разные языки. Сейчас ещё и третий выходит.
#190 #677321
>>676661

>Что значит "битовый размер совпадает"?


То, что количество бит в массиве и в объявленных полях структуры совпадает. Понятно, что там еще куча барахла в объекте будет, я про непосредственно данные в массиве.

Спасибо за то, что ты написал далее. Я убедился в том, что все эта моя затея - полная дичь. Свифт он "как бы не для этого чтоли" (но зачем тогда там такое разнообразие ансейф типов). Я уже все сделал на чистых сях и все прекрасно работает. Мне просто интересно - или это я настолько непроходимый тупорылый баран, что не могу понять 0-day-идеи свифта, либо свифтик не такой уж айс. Получается, не баран.

>>676917
Спасибо, вроде пробовал. Точно не могу сказать, потому что под эту задачу я пробовал слишком много решений stackoverflow, я в них уже запутался.
Выложить кодик - зачем? Выжимка проблемы мной уже озвучена. Никакой доп инфы в кодике нет.

Итоговое решение - отказаться от использования свифт в проекте.
>>677383>>677611
#191 #677383
>>677321

> 0-day-идеи свифта


Ну он просто замена objC а не С. Я точно не знаю, но судя по всему в Apple такая идеология что они не рассматривают objC (и следовательно свифт) как полностью универсальный язык. Я подозреваю что достаточно заметная часть эпловского софта пишется на С (или С++) а objC/swift используется для интерфейса. На это наталкивает распространенность бриджинга разных видов, toll free bridging между типами Core Foundation и Foundation Kit, тоесть можно получить, к примеру NSDictionary из objC кода, обработать его в С коде считая что это CFDictionary, а потом вернуть назад с минимальными затратами. Теже блоки сделаны как расширение С синтаксиса (а не objC) из-за чего у них немного всратый синтаксис, GCD (относительно новая разработка) - сишный фрейморк с которым можно работать из С кода. Тоесть в aplle, наверное, считают что это норма (в том смысле что сами так делают) когда ты основную массу кода пишешь на objC/swift, а некоторые специфические участки выполняешь на С или С++, если нужно.
>>688378
46 Кб, 691x257
#192 #677611
>>677321
анончик, я дал тебе ссылку на решение, которое у меня работает. пикрил
>>678021
#193 #678021
>>677611
Наоборот мне надо.
Смотри как бы это выглядело на сях:

struct data
{
uint32_t num: 4;
uint32_t payload: 4;
uint32_t crc: 4;
uint32_t reserved: 4;
};

uint8_t gameNetworkBuffer[2] = {'x', 'j'};

struct data packet = (struct data)gameNetworkBuffer;

printf("Packet number: %d\n", packet->num);
printf("Packet payload: %d\n", packet->payload);
printf("Packet checksum: %d\n", packet->crc);

Теперь представь, что
struct data
{
uint32_t num: 4;
uint32_t payload: 4;
uint32_t crc: 4;
uint32_t reserved: 4;
};
объявлена в заголовке Objective-C, настроен бридж, а все остальное мне надо повторить в swift.
#193 #678021
>>677611
Наоборот мне надо.
Смотри как бы это выглядело на сях:

struct data
{
uint32_t num: 4;
uint32_t payload: 4;
uint32_t crc: 4;
uint32_t reserved: 4;
};

uint8_t gameNetworkBuffer[2] = {'x', 'j'};

struct data packet = (struct data)gameNetworkBuffer;

printf("Packet number: %d\n", packet->num);
printf("Packet payload: %d\n", packet->payload);
printf("Packet checksum: %d\n", packet->crc);

Теперь представь, что
struct data
{
uint32_t num: 4;
uint32_t payload: 4;
uint32_t crc: 4;
uint32_t reserved: 4;
};
объявлена в заголовке Objective-C, настроен бридж, а все остальное мне надо повторить в swift.
>>678024>>678025
#194 #678024
>>678021

>struct data packet = (struct data)gameNetworkBuffer;


Не могу я в теги. Видно, что курсив сожрал мои указатели.
struct data%STAR% packet = (struct data%STAR%)gameNetworkBuffer;
#195 #678025
>>678021

>повторить в swift


А в свифт соответственно Array<UInt8>
>>690840
#196 #678200
вот так?

let gameNetworkBuffer = [UInt8]("xj".utf8)
let packet = UnsafePointer<data>(gameNetworkBuffer).memory

print("Packet number: \(packet.num)")
print("Packet payload: \(packet.payload)")
print("Packet checksum: \(packet.crc)")
>>678246
#197 #678246
>>678200
падает с segfault
>>678296
#198 #678296
>>678246
вот весь проект
http://rghost.ru/8TcJC9KPs

у меня не падает. мы точно один и тот же код тестим?
>>678564>>678600
#199 #678564
>>678296
Лично я в своем проекте пытаюсь решить проблему. Конкретно валится после вписывания этой строчки

>let packet = UnsafePointer<data>(gameNetworkBuffer).memory


Валится с segmentation fault.
>>678600
#200 #678600
>>678296
>>678564
Твое решение правильное. Спасибо, добра тебе! У меня валилось из-за объявлений. У меня реальная структура содержит в себе еще структуру, а в той уже указатель. Он объявлен как [0] массив. Из-за этого все валилось. Объявил с символом звездочки - заработало. Спасибо еще раз! Чаю выпей!
>>678621
31 Кб, 348x604
#201 #678621
>>678600
Вот несмешная картинка, в качестве "с меня как обычно".
#202 #678813
>>630631 (OP)
Есть какой-нибудь handbook по передаче данных?
Я еще учусь, но я просто заебся, это какая-то боль.Я просто могу уже продумать всю логику и алгоритм задачи и часа 4 сидеть тупить и сражаться с ругательствами конпелятора

ПЕРЕДАТЬ В МЕТОД БЛОК
@
ПЕРЕДАТЬ В МЕТОД БЛОК, В КОТОРЫЙ ПЕРЕДАЕТСЯ ОБЪЕКТ
@
СДЕЛАТЬ ВИДИМЫМ %NAME ДЛЯ ДРУГОГО КЛАССА
>>678843
#203 #678843
>>678813
Кстати, это какой процент от работы ИРЛ? Это вообще хоть какие-то значимые вещи/основа или это потом само придет так же рутино, как и объявлять переменные?
>>678862
35 Кб, 640x480
31 Кб, 640x480
6 Кб, 583x367
#204 #678862
>>678843
Никогда это не придёт. Objective-C был изначально придуман как дальнейшее развитие MacApp и Hypercard на компьютерах NextStep и ни для чего больше предназначен не был. Весь хоть сколько-нибудь серьёзный софт под Mac OS Classic пейсали на Сишке с Посраллем, а для отладки там был отладчик уровня Ассемблера, тем более, что Ассемблер на тех ещё процессорах был более наглядным, чем даже x86, и там всё было наглядно (ну или почти всё).
Счастливо поебаться, в общем.
>>684326
#205 #679300
Студент 3 курс, знания - java se. Думаю куда дальше катиться: в ведроид или к вам? Как там вообще дела у иосников? Если сейчас начну учить свифт, то к моменту как я его выучу он уже станет основным языком? Много подводных камней в разработке под яблочные системы?
>>679457
#206 #679440
Сап бояре.

Подучил чуть Obj C, кое-что разобрал по массивам, объектам, аутлетам, нотификациям, делегатам, анимациям с таймерами, немного по таблицам. Не разбирался с кор датой, потоками, вебом.

Могу ли вкатиться куда-нибудь джуном или меня пошлют как совсем зелёного? Смотрю на то, что умеют иные бояре, руки опускаются от того, как много умеют они и как мало умею я.
>>679442>>679457
#207 #679442
>>679440

>Могу ли вкатиться куда-нибудь джуном или меня пошлют как совсем зелёного?


Да
>>679782
#208 #679457
>>679300

>Если сейчас начну учить свифт, то к моменту как я его выучу он уже станет основным языком?


За две недели и в основные языки? Да вряд ли.
Учи оба языка.

>>679440
Сделай апп в стор/опенсорс который загружает данные с сети, кэширует в коредату и показывает в тейбл или колекшн вью. С этим иди и устраивайся джуном.
#209 #679782
>>679442
Да могу
или
Да пошлют
>>679800
#210 #679800
>>679782
Нет.
>>681045
#211 #681045
>>679800
Пидора ответ
#212 #684326
>>678862

>Objective-C был изначально придуман как дальнейшее развитие MacApp и Hypercard на компьютерах NextStep и ни для чего больше предназначен не был.


Норкоман чтоле? Прочитай хотябы в каком году придуман ObjC. Я уж не говорю о том что Эппл и Некст развивались независимо лет этак десять.

>HyperCard


Было дело, ваял на этой предтече гипертекста цветную аркаду в илитной гимназии после уроков лол
#213 #685498
Можете обрисовать из чего складывается и чем характеризуются ранги Jun->Mid->Sen IOS девелопера?
Есть ли какой-то основной вектор и побочные или важно все? Если все, то в каких пропорциях?
Вот проперти из тех, что сразу пришли в голову:
@Знание дохуя фреймворков
@Макро понимание архитектуры проекта и его видение в будущем, оставление места для маневров при масштабирование и роста проекта.
@Алгоритмы
@Структура данных
@Байтоебство
@Микроскилл, умение сделать какой-нибудь одной штуки с изьебистым способом,оверинжиниринг.

Расставьте их в порядке приоритета что-ли и добавьте свои, которые я упустил.
>>685592>>686741
#214 #685592
>>685498
Разница простая. Всё, что работодателю гарантирует, что ты сделаешь проект нужной ему сложности в нужные ему сроки, делает тебя сеньором. Чем дальше от этого, тем ниже ты. Всё.
#215 #686457
Посоны есть те кто разрабатывает игры со sprite kit. Есть идейка проекта одного, хочу спросить на сколько он подойдёт
#216 #686741
>>685498

>Вот проперти из тех, что сразу пришли в голову:


Хуиты понаписал и сидит довольный, которые далеки от реально разработки говна что будет тербовать заказчик
#217 #688378
>>677383
Пока эппл все пишет на objC, CoreFoundation, C ,C++ даже новые программы для El Capitan - Photos и с нуля переписанный Disk Utility - используют objC, а не Swift. Отсюда возникает вопрос, а не фикция ли вся эта шумиха по поводу скорого перехода на Swift?, видимо не оправдались ожидания эппл, раз они написали Photos на objC.
На CoreFoundation, C, C++ в основном фреймворки, библиотеки и драйвера.
>>689534>>690845
#218 #689534
>>688378
Буду со следующей версии свифта писать. на нем, ящитаю. Переход на свифт будет 100%, уже многие поды переписываются на нем.
>>692011>>692216
#219 #690833
>>630631 (OP)

> Платина:


> Что выбрать? - свой проект - swift, работа - objective-c.


Я тя умоляю. Я уже 3-й проект делаю на свифте - брат жив
#220 #690837
>>643277
Я раньше тоже ненавидел проги на яве за их убогий интерфейс. Но, когда попробовал продукты от JetBrains, другие IDE для меня перестали существовать. Да и интерфейс почти не выдаёт их явовость
>>692217
#221 #690840
>>678025
[UInt8] же
#222 #690845
>>688378
Ну так как бы самыми главными приложениями они не хотят рисковать, пока язык не стал мачурным. Всё таки, если ось и стандартные приложения начнут глючит - эпла заебут исками да и вообще перестанут покупать.
Думаю, версии к 4-5 начнут переходить. Просто сколько можно кодить на этом говне мамонта - objc
>>702474
#223 #692011
>>689534
Поддвачну. Я тоже дождусь свифт 3 и перекачусь.
>>692216
#224 #692216
>>689534
>>692011
Вы перекатитесь на свифт ровно тогда, когда его рантайм будет частью iOS. А пока это говно раздувает вам бинарь на 10+ мб - это пиздец.
У меня приложение в целом весит 10 мб. Решил пару классов на свифте написать и хуяк - 20+ мб.
ЗАЕБИСЬ

Так что перекат на свифт только вложенностью свифт-рантайма и ограничивается.
>>697995
#225 #692217
>>690837
В частности с AppCode - это говно, по сравнению с xcode, совершенно неюзабельно ни для чего кроме рефакторинга кода, а именно переименования переменных по всему проекты.
С остальными задачами совершенно не справляется
>>697998
#226 #692233
Из вас 100% есть те, кто имели дело с хакинтошем. Так вот, собираюсь брать новый стационарник, на котором второй системой будет стоять хакинтош сугубо с целями разработки.
Сколько оперативы нужно, чтобы этот ваш икскод работал на нём без тормозов, и ещё тянул эмулятор?
>>692251>>692643
#227 #692251
>>692233

> эмулятор


Там симулятор - те приложения фактически ставятся в систему и нет вирт. машины, те ресурсов почти не жрет.

Но вот Xcode последней версии это какой-то пиздец, тормозит просто ужасно.
Без быстрого SSD и 4-8GB лучше не пытайся его запускать.
>>692645
#228 #692643
>>692233
Да 8ми гигов тебе хватит. Если прям совсем выёбываться - можно 16 заебенить.
третий год разрабатываю на хакинтошах
#229 #692645
>>692251

>Там симулятор - те приложения фактически ставятся в систему и нет вирт. машины, те ресурсов почти не жрет.


Лёл. Ресурсы жрёт еще как, особенно при отладке.
#230 #692669
Почему цвет в эмуляторе и мобилы отличается от того что задан в xcode?
На оверфлоу пишут что некоторые тупо добавляют по rgb + параметры на глаз. Такие костыли как по мне это тупость, есть другие причины?
#231 #692683
>>692669
гугли ICC-профиль
>>692891
368 Кб, 1600x1200
Could not generate key pair for CSR #232 #692755
Анон, мне необходимо тестировать приложение на реальном айфоне, но не хочу сейчас платить и регать дев-акк, насколько я понял, в 7-мом икскоде это возможно, но у меня не получается: подключаю айфон, икскод его видит, но сертификата нету, предлагает пофиксить проблему - тут, я так понимаю, он должен всё нормально сам скачать, но у меня выдаёт что-то типа "Could not generate key pair for CSR".
Подскажите, пожалуйста, как исправить.
>>692895>>692960
#233 #692891
>>692683

> ICC-профиль


Так в смысле? hex'om указываю цвет же в коде, а не через интерфейс билдер.
>>692898
#234 #692895
>>692755
Я слышал, что вроде бы сейчас можно не платить, не?
>>692960
#235 #692898
>>692891
Каждое устройство выводит цвета по своему. Добится абсолютно идентичного цвета не возможно технически (на нашем уровне технологии). Две только что произведенные соседние жк-матрицы на конвеере будут по разному показывать цвета. Про разных производителей и говорить нечего. Поэтому там где нужна точная цветопередача производят дополнительную калибровку. С помощью колориметра замеряют как именно отображает цвета данный конкретный экземпляр матрицы, загоняют данные в ICC-профиль, и дальше происходит то что ты назвал "тупостью" - перед отображением цвет немного подправляется исходя из данных ICC-профиля чтобы получить именно нужный цвет на данном экране. Обрати внимание что ты имеешь дело с тремя разными цветами. Цвет который ты задаешь для отображения. Цвет который отображает твой монитор. Цвет который отображает устройство.
>>693209
#236 #692960
>>692895
Да, о чём и речь.
>>692755 -разобрался сам, спасибо
#237 #693209
>>692898
Так смотри, есть эмулятор, на котором пипеткой смотрю цвет и он не совпадает на моем же аймаке, с тем цветом что я указал в икскоде. Причем тут тогда твоя калибровка, если на одном девайсе происходит действие.
>>693211
#238 #693211
>>693209
Забыл сказать, что интерфейс билдер правильный показывает же тоже
#239 #694945
>>692669
В XCode не текстом ли задавал?
Если color = [UIColor colorWithRed:...
то не забывай цвета указывать в формате 172/255.0, x/255.0, короч все делить не забывай.
>>697249
67 Кб, 679x386
#240 #695156
>>692669
тут Device RGB выбери
>>697249
#241 #695984
Кто-то выкинул почти все книжки Ray Wenderlich
https://kat.cr/ray-wenderlich-7-book-collection-t12262395.html
#242 #697249
>>695156
это вообще причем? он такой и стоит.
>>694945
хексом задавал, ргбшкой, чем угодно. да хоть из IB задавай - другой будет.

В инете короч решение только 1 было по именной той проблеме - на глаз крутить.
#243 #697995
>>692216
Да кого сейчас ебут эти 10-20 метров? Даже лимит по скачиванию через сотовую сеть - 50 метров. Если писать для мурики, то им тем более похуй на размер. Для рашки может быть в каких то ебенях и будет смотреть на размер. Но не похуй ли на таких пользователей?
#244 #697998
>>692217
Сейчас там рефакторинги для свифта все поотключали, потому что только допилят их, так выходит новая версия, в котороё всё по-другому. Но должен же он когда-то стабилизироваться. К версии 3 хотя бы. С обжэктивом всё было прекрасно, пока я на нём писал
#245 #698002
>>697995
На моделях 16гб а то и 8гб твое приложение из говнокогда никто ставить не будет, тем более, что если оно не уникальное
>>698373
#246 #698251
>>697995

>, то им тем более похуй на размер


Вот им как раз не похуй, это у нас моб инет дешевый, а там он пиздец дорогой кстати.
>>699765
sage #247 #698373
>>698002

>а то и 8гб


Ты из какой параши вылез, мудила?
>>700807
#248 #698524
>>697995
Живу в гейропке, дрочево на трафик есть, в рашке же почти безлимит по мобильному LTE.
А тут - ну, 900 мб можно купить, за 10 евро. А можно 1500мб за 15 евро. Нравится?

А вообще ты мудак. Ибо когда приложение увеличивает вес в два раза с нихуя, только из-за использования нового языка - это хуёво.
Скорее всего ты просто никогда не сталкивался с оптимизацией веса приложения. Ибо даже в заявленном тобой случае с 50мб те 16мб, которые вешает сверху свифт - огромный процент. В 16 мегабайт можно уместить огромное количество графики.
>>698660
#249 #698660
>>698524

>900 мб можно купить, за 10 евро. А можно 1500мб за 15 евро. Нравится?


До сих пор припейд симку юзаешь что ли? Лол.
>>698673
#250 #698663
Котаны, мб кто сталкивался, есть ли способ повлиять на скорость отправки email в приложении?
94 Кб, 828x599
#251 #698673
>>698660
Ну ок, вот не препейд, один хер говно, после московской йоты с 450р за анлим.
>>698715
#252 #698715
>>698673
Лол, ну ты дал конечно сравнивать европейскую часть СНГ, где действительно дешёвый клёвый инет, и остров с ебанистическими ценами.
>>698890
235 Кб, 582x600
#253 #698719
БЛЯДЬ КАК ЖЕ МНЕ БОМБИТ

Ебучий айфон, ебучий свифт, ебучий исккод.

Почему нет нормальный сочетаний клавиш? Как мне сдвинуть курсор на одно слово? Почему стандартные хоткеи для набора текста не работают? Почему ебучие ошибки отображаются только по клику слева, куда почти наверняка втыкается дебажная метка?

Делаю пример по официальному руководству эппл - не работает! Через полчаса ёбли и гугла оказывается, что эти гомосеки не указали, что там-то надо галочку поставить.

Хочу установить популярную простуюбиблиотеку - делаю всё, как указано в их гайде - не работает! Через 2 часа ебли и гугла оказывается, что эти гомосеки не указали, что ебучий икскод может проебать адрес репозитория.

Установил, копирую пример с сайта - 2 строчки - не работает, какая-то хуйня с типами, сука, 3 часа ищу решение, блядь, как же я ненавижу эпл, горите в аду, говноеды маркетинговые.
#255 #698743
>>698719

>Как мне сдвинуть курсор на одно слово


Option+стрелка (или контр+стрелка).
Алсо да, добро пожаловать в iOS кодинг, придающий чудесное ощущение хуя во рту.
Алсо попробуй другие идешки, если уж ты такой нервный
>>698747
#256 #698747
>>698743
Угу, спасибо, уже и сам нашёл, как и обёртку для ебучего класса.
Пиздец, клавиатура тоже неудобная, я уже не гневаюсь, а грущу, ведь "эпл - это удобство, дизайн", и прочее говно.
>>698851
126 Кб, 1278x949
#257 #698851
>>698747
Потерпи немножко. Просто надо привыкнуть.
#258 #698868
>>698719
Ебаные дауны, откуда вы лезете?
>>698897
329 Кб, 964x572
#259 #698890
>>698715
Вот тебе континентальный водафон. Один хуй не анлим, один хуй дорого после москвы.
#260 #698895
>>698719
долбоеб, на MacOsX стандартные хоткеи для перемещения между словами/строками - alt/cmd + стрелка. Такие же и в xcode.
Ты откуда вообще вылез, пидор, раз стандартные хоткеи не знаешь?

>Хочу установить популярную простуюбиблиотеку - делаю всё, как указано в их гайде - не работает! Через 2 часа ебли и гугла оказывается, что эти гомосеки не указали, что ебучий икскод может проебать адрес репозитория.


Ты чем там занимаешься содомит? Установка любой библиотеки производится одной командой в терминале - "pod install".
Какой нахуй репозиторий, какой нахуй икскод?
>>698898
56 Кб, 451x392
#261 #698897
О, я ещё нашёл изюминку хуесосания макоси: нужно было мне установить джем, вбиваю:
gem install blablabla
хуйтам! нету рзрешения
Окей, иду на сайт блаблаблы, там та же команда - начинаю гуглить, ебусь, вижу решение через судо:
sudo gem install blablabla
Вбиваю - просит пароль - а у меня нет пароля на юзере, ничего не пишу, жму энтер - "вронг пассворд". Нихуя ж себе, ебусь дальше, пока не нахожу на официальном (!) сайте эппла, что, чтобы выполнить коанду через судо, нужно установить пароль, а потом его ввести.
Пиздец, каким же говном потреблядей кормят, я офигеваю.

>>698868
С кровати твоей мамаши только слез.
>>699058>>699806
#262 #698898
>>698895
Говна въеби, стандартные хоткеи через контрол идут, а не через альт или говнокомманд.

>Какой нахуй репозиторий, какой нахуй икскод?


Вот, блядь, я кокоподы и устанавливал.
>>698908
91 Кб, 1054x493
#263 #698908
>>698898

>стандартные хоткеи через контрол идут


Долбоеб? контрол года с 2007-го переключает рабочие столы. Стандартные хоткеи на нормальных платформах (mac os) ВСЕГДА были через alt/cmd.

>Вот, блядь, я кокоподы и устанавливал.


пик релейтед (https://cocoapods.org).
Я очень надеюсь что ты уебёшь с нашей няшной платформы разработки куда подальше - подобный скам нам не нужен.
>>698920
#264 #698920
>>698908
Я про негейские оси.
>>698965
#265 #698965
>>698920
Ну так уйди, не мучай себя. Макось, необходимость ставить хакинтош, платный dev-account - отличный фильтр, повышающий порог вхождения в платформу.
Таким образом зарплаты ios-разрабов никогда не будут демпинговаться понабежавшим быдлом. В отличии от андройда, кстати - вкатиться туда куда проще.
>>699616
#266 #699058
>>698897
О, шуточки про маму. Очень неплохо позволяет оценить уровень собеседника.
#267 #699502
>>698719
А ты просто съеби. Ты все равно не сделаешь нихуя. А кто-то из нас встретит в вакансиях организацию, чей проект ты завалил, потому что у тебя бомбит от хоткеев, и снова положит в карман топовую оплату в индустрии. А ты иди в привычный notepad++ пиши html, там все твои хоткеи, знакомые тебе по пиратским дискам windows xp.
#268 #699616
>>698965
Да ладно, разве у айосеров и андроидов не одинаковые зп?
#269 #699765
>>698251
У меня был тим лид из Вашингтона - говорил, что у них дешёвый инет. Как в остальной амурике - хз
46 Кб, 500x415
#270 #699806
>>698897
Просто ты школьник, который бабыюникса не нюхал. Любой нормальный девелопер (кроме .net-щиков), хоть немного знаком с линуксом и знает, как работает sudo
#271 #699832
>>670502

Что за структура у тебя - хз.
Я, например, так конвертировал float массив:

В обжц колбэк объявлен как (float
samples, NSRange outRange)

В свифте я этот колбэк объявил как

(samples: UnsafeMutablePointer<Float>, outRange: NSRange) -> Void in

let buffer = UnsafeBufferPointer(start: samples, count: outRange.length);
let floatArray = Array<Float>(buffer)

всё, floatArrat - свифтовый массив.
>>699833>>699850
#272 #699833
>>699832
после float в сишном коде всюду были звёздочки
#273 #699850
>>699832
Там ниже проблему решили. Массив может так и сработает, структура с полями - вызвала боль.
#274 #700030
Сап. Можно ли технически сделать, чтобы через bluetooth с одного айфон я видел, где находится неподалеку другой айфон, вычислять расстояние между ними и угол (типа компаса)? Вообщем типа "найди свой второй айфон".
>>700049>>700064
#275 #700049
>>700030
Угол нет, растояние теоритически наверное возможно по силе сигнала, но на практике врядли из-за препятствий.
#276 #700064
>>700030

>через bluetooth


нет

>угол


что такое угол между двумя точками?

>типа "найди свой второй айфон"


гугл радиотриангуляция
>>700115
#277 #700072
Если есть два устройства можешь потестить https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CBCentralManagerDelegate_Protocol/index.html#//apple_ref/occ/intfm/CBCentralManagerDelegate/centralManager:didDiscoverPeripheral:advertisementData:RSSI: тебе нужен RSSI, даже в документации написано что по нему можно определять близость устройства. Но там врядли можно напрямую постороить зависимость, так как на RSSI будет влиять куча других факторов. Можно попробовать отталкиваться от изменений сигнала при перемещении. Человек ходит с телефоном по комнате, приложение снимает сигналы с акселерометра (для определения перемещения), сравнивает с изменениями RSSI и вычисляет приблизительное положение по изменениям RSSI.
>>700081>>700091
#278 #700081
>>700072
Еще один умник. Чтобы по RSSI найти одни айфон, тебе нужно еще 3 других айфона.

Гугли епть радиопеленг, триангуляция, сотовую связь, вычисление курсовых углов, вот это все.
>>700087>>700124
#279 #700087
>>700081

> Чтобы по RSSI найти одни айфон, тебе нужно еще 3 других айфона


Или последовательно вычислить RSSI в трех разных точках, если искомый айфон не перемещается.
>>700102
#280 #700091
>>700072

- (void)centralManager:(CBCentralManager )central
didDiscoverPeripheral:(CBPeripheral
)peripheral
advertisementData:(NSDictionary<NSString ,
id>
)advertisementData
RSSI:(NSNumber )RSSI

Advertisement Data Retrieval Keys

NSString
const CBAdvertisementDataLocalNameKey;
NSString const CBAdvertisementDataManufacturerDataKey;
NSString
const CBAdvertisementDataServiceDataKey;
NSString const CBAdvertisementDataServiceUUIDsKey;
NSString
const CBAdvertisementDataOverflowServiceUUIDsKey;
NSString const CBAdvertisementDataTxPowerLevelKey;
NSString
const CBAdvertisementDataIsConnectable;
NSString *const CBAdvertisementDataSolicitedServiceUUIDsKey;

>даже в документации написано что по нему можно определять близость устройства


ткни меня в это
>>700098
#281 #700098
>>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.

>>700109
#282 #700102
>>700087
Да, можно ходить, бегать, прыгать, махать руками по всей квартире, зайти к соседу, покататься на лифте. Чем дольше бегать - тем точнее можно определить телефон. Пробовал карту wifi сетей составлять?
#283 #700109
>>700098

>близость


спасибо

p.s. но это все равно хуйня, это они powerlevel имеют ввиду.
#284 #700115
>>700064

> >через bluetooth


> нет


А через какие технологии можно заюзать? Допустим, интернета через wifi и 3g у обоих айфонов нет.

> >угол


> что такое угол между двумя точками?


Угол, проведенный от точки 2 айфона к вектору с началом в точке 1 айфона и направленного вдоль линии, куда я смотрю (а айфон держу прямо).

> >типа "найди свой второй айфон"


> гугл радиотриангуляция


Гугл плохо осведомлен об этой штуке и предлагает фототриангуляцию.
>>700128
#285 #700124
>>700081

> Гугли епть радиопеленг, триангуляция, сотовую связь, вычисление курсовых углов, вот это все.


А я как-то могу на практике это заюзать в ios? Это же низкоуровневые вещи, разве есть либы для этого?
>>700131
#286 #700128
>>700115

>А через какие технологии можно заюзать? Допустим, интернета через wifi и 3g у обоих айфонов нет.


>Гугл плохо осведомлен об этой штуке и предлагает фототриангуляцию.



никак
https://en.wikipedia.org/wiki/Direction_finding

>Угол, проведенный от точки 2 айфона к вектору с началом в точке 1 айфона и направленного вдоль линии, куда я смотрю (а айфон держу прямо).



я понял, просто доебался.

Короче, ни айфон ни андроиды не дадут тебе никаких технических плюшек, которые позволят тебе определить положение телефона какими-то принципиально новыми способами. Фактически через блютус тебе нужно сделать свой мини-аналог GPS или определения положения по сотовым вышкам.
#287 #700131
>>700124
иос тебе дает
NSString const CBAdvertisementDataTxPowerLevelKey;

чтобы сделать остальное - тебе надо учиться радиосвязи
>>700140
#288 #700140
>>700131
то есть rssi
по ссылке на доки выше.
#289 #700163
Хм, а может вот такой фреймворк мне поможет, кто-то сталкивался?
https://developer.apple.com/library/ios/documentation/MultipeerConnectivity/Reference/MultipeerConnectivityFramework/index.html#//apple_ref/doc/uid/TP40013328

Я бы проверил, на что он способен, но беда в том что у меня не то, что 2 айфонов нет, а и одного нет, только эмуль, ибо я нищеброд.
>>700170
#290 #700170
>>700163
Не поможет. Этот фреймворк на уровне сервисов инфу выдает.
19 Кб, 341x341
#291 #700317
Хочу просто спокойно прочесть книгу для ньюфага по obj-c на русском, что реально найти из относительно свежего? Пока попадаются издания 12 года и сплошной свифт
>>700852
#292 #700807
#293 #700852
>>700317
на русском? реально? вон их профессии
>>701451
#294 #701451
>>700852
Не выебывайся. У меня нет проблем с чтением на английском, но для легкого освоения я выбираю родной язык. Для остального есть документация в оригинале.
>>701467
#295 #701467
>>701451
Ну вот нахуй и иди читай документацию и книги 12 года, чмошник
>>702087
#296 #702079
Когда же эти пидоры вложат рантайм-то свифтовый в ios. Думал с третьей версией будет, а нет.
#297 #702087
>>701467
Двачую этого джентльмена.
87 Кб, 824x228
266 Кб, 1280x550
219 Кб, 1010x525
#298 #702474
>>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... все равномерно распределяется.
#299 #702509
>>702474
Как стать таким же продвинутым как ты?
>>702543>>702646
#300 #702543
>>702509
Двачую вопрос
#301 #702605
>>702474
Да, можно просто начать с того, что с 7 версии Xcode стал каким-то невыносимо глючным - крэши регулярно.
Он легко в первых версиях 7.х падал при редактировании строки
@property NSArray<NSString(звездочка)>(звездочка) arr;
>>703090
#302 #702646
>>702509
Что такого продвинутого ты увидел в его трёх скринах стэктрейса и перечислении багов в эппловских фреймворках?
#303 #702682
А есть возможность шкодить под iOS не покупая огрызочные вычислительные машины?
39 Кб, 460x318
#304 #702739
Делаю все как на скрине, но при нажатии на любую кнопку в NSSegmentedControl возвращает tag = 0, куда копать? Уже и через IB тэги выставлял, и только программно без IB, все равно любая кнопка возвращает 0.
>>703352
#305 #703090
>>702474
>>702605
Есть такие люди, у которых в любой ОС постоянно что-то не работает.
А есть такие (например, я), у которых в личном парке 3 мака под ил капитаном, фултайм хардкорная разработка в двух областях, рисование, графика, музыка, админство. И ни одного глюка.
На машинах с windows тоже ни одного.
И на машинах с linux ни одного.

А таких людей, у которых pdf и креши я тоже знаю. Они бесполезны. Странно, что они каким-то образом печатать умеют.
>>703355>>703698
#306 #703352
>>702739
Копай в то, как ты видишь то, что тебе возвращается 0. Может неправильно лог прописал.
#307 #703355
>>703090

>фултайм хардкорная разработка в двух областях, рисование, графика, музыка, админств


Читать как 2 лабы уровня lab04.cpp, фотошоп чтобы кружок нарисовать, фрутилупс дальше туториалов 1 урока не осиливший и настройки утки
>>703390
#308 #703390
>>703355
Вот именно так читать не надо. Это прочтение максимально далеко от истины.

Но если тебе так хочется - можешь читать. Суть все равно та же - даже на lab04.cpp у нормальных людей ничего не глючит. А у ненормальных постоянно какие-то pdf отваливаются.
>>703512>>703700
#309 #703512
>>703390
но у тебя так и есть, мамкин недофрилансер
#310 #703698
>>703090
Какой ты умный) Прям и жнец, и певец и дуде игрец.
Профи широкого профиля просто. В ебальник бы сунуть за базар твой гнилой, ибо пиздишь о том, чего не знаешь.
При работе с asset'ами тоже кстати проблемы бывают, аж до вылета. Знаешь, что это такое, дизайнер, админ, худождник?
#311 #703700
>>703390

>даже на lab04.cpp у нормальных людей ничего не глючит.


>даже на lab04.cpp


Ебааааный дебил. Так на то она и лаба, что на ней ничего сложного не делается, отсюда и глюков быть не должно. Что у тебя с логикой, даун?
>>703848
#312 #703848
>>703700
Может он имел в виду, что в лабе будет много ошибок, утечек памяти и прочего, но и они не смогут повалить X-code?
>>703880
#313 #703880
>>703848
Может, но Xcode валится на каких-то легких и рутинных вещах и не при утечках. Так что скорее всего у него с логикой все-таки проблемы.
83 Кб, 1265x853
#314 #704274
Аноны, подскажите нормальные виде/текстовые уроки программирования в xcode. При условии, что я программировать не очень умею, ну точнее могу в бейсике, паскале или си написать что-нибудь совсем простенькое, но попытавшись написать helloword в xcode у меня чет подгорело, гигантские статьи для одной простейшей программы, привязывание кнопок к всяким ебеням, похоже на виндовсформс, но почему-то пиздец видится мне, плохо понятно всё. Да и даже сделал как по гайдам, а оно обрезается в эмуляторе, который симулятором называют.
>>704304>>704479
#315 #704304
>>704274

>Аноны, подскажите нормальные виде/текстовые уроки программирования в xcode.


Шапчку читай, слепой еблан, даже не пытался, лишь бы говна понаписать.
>>704308
#316 #704308
>>704304
Ты злой :(
#317 #704479
>>704274
ебаный кретин блядь открой любую книгу по разработке на ios хоть из шапки и сиди тыкай кнопки по шагам
>>704496
#318 #704496
>>704479
Я знал, что владельцы маков поехавшие, но чтобы настолько...
>>704501
#319 #704501
>>704496
Где поехавшие, мудак не может открыть и загуглить книжки.

В ОП ПОСТЕ ПЕРВОЙ ЖЕ СТРОЧКОЙ список книг, как этот муда к впрограммирование собрался?
>>708404
#320 #704734
На повестке вопрос о деньгах/кодинге
Где найти заказчиков / вкатиться в студию джуниором? Или пилить пет-проект и попытаться продать?
>>704918>>705421
#321 #704918
>>704734
Заказчиков не искал, так что расскажу про поиск работы.

Да тупо на моем круге искал подходящую вакансию и писал, что вот я такой-то, не хотите ли меня?
И взяли, после тестового задания.
#322 #705421
>>704734
А насколько ты хорош, чтобы работать джуниором? Джуниоры разные. Что ты умеешь?
#323 #705601
>>633612
Так не сиди в конфах /зк/ лол.

Вот тут норм разрабы, контрибьютят в Swift даже:
http://cocoadevelopers.club/
>>705680
#324 #705680
>>705601
Это деанонно как-то.
>>706532
#325 #705710
Котаны, поясните за батхёрт. Как так выходит, что Cocoa Обж С Свифт Хкоде и вот это всё по сути довольно сложная разработка, если сравнивать с макакопхп и т.п. скамом. Кроме того, ещё и довольно ресурсоёмкая, потому что бесплатно вкатиться намного сложнее - все девайсы для тестов стоят дорого, оборудование, т.д. Оно ж понятно, что это хакинтошится, но всё-таки. ТАК ОТКУДА ЖЕ СТОЛЬКО ИНДУСОМАКАК ЗАНИМАЕТСЯ РАЗРАБОТКОЙ ПОД МОБИЛЫ? У них же нищая обстановка, каким образом их столько много в такой достаточно сложной и ресурсной сфере?
#326 #705715
>>705710

>каким образом их столько много в такой достаточно сложной и ресурсной сфере


Если речь идёт про ios, то ты не прав. Мало ios разработчиков, во всяком случае в РФ и Европе.
#327 #705793
>>705710
Насчет макак - хз. А хорошего иос разработчика найти почти нереально. Их мало и они все заняты.
Макаки они что пилят? Всякое дно типа доставки пиццы и игрушки на кокосах. Этого может и навалом. А людей, который тебе под иос сделают яндекс.карты или портанут под иос FL - катастрофично мало.
>>705821
#328 #705821
>>705793

>А хорошего иос разработчика найти почти нереально.


А вот итт они и собрались все.

>>705793

>Всякое дно типа доставки пиццы и игрушки на кокосах.


Это дно как раз больше всего и востребовано. Причём, это дно всё равно сложнее пхп дна.

Кстати, и правда, откуда у макак столько ресурсов даже для пиления доставки пиццы и игрушек на кокосах?
>>706532
#329 #706532
>>705680
Никто не мешает сидеть под ником.

>>705710
iOS постоянная нехватка, хз откуда у тебя данные.

>>705821
Приложения для бизнеса черпают деньги из бизнеса.
Игрушки на кокосах делают давно только лохи в маркетинге, денег с игрушек на аппсторе года три как нет вообще.
>>706599>>706910
#330 #706599
>>706532

>iOS постоянная нехватка, хз откуда у тебя данные.


На апворке индусов на иосе вагоны.
>>708591
#331 #706905
Пидрилы, что с конфой?
205 Кб, 1080x1920
#332 #706910
>>706532
Раз нехватка, то почему всего 2 вакансии на всю Москву для джунов
>>706916>>708591
#333 #706916
>>706910
Нехватка вакансий
>>707051
#334 #707051
>>706916
А хуле ты ищешь ios? Ищи objective c, swift.
>>707061
66 Кб, 721x852
#335 #707061
>>707051
Так там еще хуже, удвою его, мне каежтся все такие вакансии чисто через сарафанное радио
0 Кб, 72x72
#336 #708109
Анон, я задолбался, пытаясь настроить 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>>708330
#337 #708252
>>708109
Заархивуруй свой проект и вылей на файлопомойку - посмотрим.
ИКСТРАСЕНСЫ ВОТПУСКИ))))
>>708297
0 Кб, 36x36
#338 #708297
>>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]

cell.nameLabel.text = meal.name
cell.photoImageView.image = meal.photo
cell.ratingControl.rating = meal.rating

return cell
}

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

т.к. cell обращается в nil
0 Кб, 36x36
#338 #708297
>>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]

cell.nameLabel.text = meal.name
cell.photoImageView.image = meal.photo
cell.ratingControl.rating = meal.rating

return cell
}

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

т.к. cell обращается в nil
#339 #708330
>>708109

> MealTableViewCell


Тебе наверное нужен nib с MealTableViewCell и не забыть там в свойствах указать что это именно MealTableViewCell а не UITableViewCell (если у тебя отдельный класс под ячейку) и в любом случае там же чуть ниже указать нужный reuse identifier (который совпадает с именем класса - MealTableViewCell).
>>708385
0 Кб, 108x108
#340 #708385
>>708330

>reuse identifier


Господи, огромное спасибо тебе, я на эту дрянь 10 часов жизни потратил.
#341 #708404
>>704501
Им блять сразу и все подовай, а потом сениоров дергают по всякой хуйне не читая документалку...
#342 #708591
>>706599
У меня всё ок. Наверное потому что я не конкурирую с индусами, у них рейт в несколько раз меньше и нанимают их совсем другие заказчики.
>>706910
Джуны нигде не нужны. Всё что выше джуна - нехватка.
Алсо искать IT-работу через сайты работ это top kek.
>>708753
#343 #708753
>>708591

>Алсо искать IT-работу через сайты работ это top kek.


А как/где искать? Я вот, например, нашел в своем тугом на иос вакансии городе контору вообще случайно. Искал опять же на сайте работ но там были предложения по веб хуите и прочему, кликнул по одной компании и перешел на их сайт и там у них увидел, что им иос еще надо но на сайте работ инфы нету вообще про это.
Где искать то? Ты же понимаешь, что шнырь позиционирующий на должность джуна не имеет выбора и работает там, где предлагают, и терпит выебоны с начальства и переработки. У него еще нихуя нету и он хуй с горы, ему не из чего выбирать. Ясен хуй, что если ты мид+ то можно на забугорных местах с поиском подсуитится но вот в данном конкретном случае ищут на джуна и ты отвечаешь

>top kek


Так где искать? Линкедин?
>>709896
#344 #709103
А как в iOS происходит обновление программ? Допустим, захотелось мне поменять местами две строчки в каком-нибудь TableView, переписал код, а что дальше?
На телефоне постоянно приходят обновления микро-версий у некоторых приложений, но все они по 100+мб, т.е. целиком приложение. Это лень горе-програмистов или нет возможности никак обновлять лишь маленький кусок?
#345 #709112
>>709103
А в плеймаркете разве не так? Это сговор основных поставщиков контента с провайдерами интернета чтобы повысить трафик.
>>709125
#346 #709125
>>709112
Откуда я знаю, как там в плеймаркете.

>сговор основных поставщиков контента с провайдерами интернета что


Ага, когда больше 100Мб по сотовому интернету не скачать, а дома всё равно безлимит.
sage #347 #709365
>>709103
А ты ежедневно планируешь выкатывать апдейты из замены двух строк?
Тогда хинт тебе: накопи апдейтов в течении недельки и выкати как охуительный апгрейд.
Ну а если все же планируешь апдейтить ежедневно, то тебя или заблочат в магазине или твое приложение удалят пользователи, ибо их заебет это.
>>709610>>709859
#348 #709610
>>709365
Что за ерунда? Апдейтить ты можешь хоть ежедневно, всё равно ревью (если не экспедитед) занимает 10-15 дней.
>>709611
#349 #709611
>>709610

>занимает 10-15 дней.


на апдейты нихуя
#350 #709778
https://telegram.me/joinchat/CUVruD5OrDIaNn5XKwM6Dw новый линк в телеграмовскую конфу
14 Кб, 500x80
#351 #709816
Антоши, пара вопросов есть у меня:
1) Как можно переключаться между ВьюКонтрллерами без привязывания Сегуе вручную на сториборде? Или хотя бы как создавать Сегуе программно?
Потребность вызвана тем, что в приложение многие клиент-серверные операции требуют авторизации, которая в случае неудачи должна выкидывать на экран логина.
2) Как сделать так, чтобы текст в таблице не вылезал за пределы экрана, а переносился на другую строку?
>>709906
#352 #709859
>>709365
Да не собираюсь я ежедневно ничего выкатывать, я ни одного приложения ещё никуда не выпустил, лол. Просто я не понимаю, почему мне каждую неделю нужно качать несколько стомегабайтных "апдейтов", когда нового кода там, наверное, почти нихуя.

Ну и всё же главный вопрос-то — возможно ли обновление лишь части приложения? Или максимум можно не заставлять заново качать все ресурсы (вроде бд в словаре, всяких картиночек и т.д.)?
>>709908
#353 #709896
>>708753
Конференции, митапы, онлайн-коммьюнити, фрилансерские сайты наконец.

HR'ные дыры не нужны. Джуну стоит сделать домашний проект и он уже будет в разы привлекательней.
>>711428
#354 #709906
>>709909
#355 #709908
>>709859
Ты можешь пушить часть изменений со своего сервера, никто тебе не мешает, если этот функционал не противоречит требованиям безопасности. Алсо, никаких проблем в том, чтобы сделать апдейт в 100 мб раз в пару недель нет. Это нормальная "расплата" за то, чтобы какой-нибудь мудак не залил свой вирусняк в телефоны.
>>709936>>709962
#356 #709909
>>709906З
Забыл указать, что для свифта нужно7
>>709910
#357 #709910
>>709909
В этот раз сам.
>>709931
#358 #709931
>>709910
Нету же, как и второго моего вопроса.
#359 #709936
>>709908

>Это нормальная "расплата" за то, чтобы какой-нибудь мудак не залил свой вирусняк в телефоны.


То есть? Что ему мешает это сделать при большом апдейте?
>>710548
sage #360 #709962
>>709908
Не можешь, эппл запрещает загружать код со сторонних источников. Если получится протащить через проверку, то все равно в любой момент смогут зарезать приложение.
>>710549
#361 #710548
>>709936

>То есть? Что ему мешает это сделать при большом апдейте?


Ты совсем ноль в иос? Мешает обязательная для всех проверка.
>>713534
#362 #710549
>>709962
Нет.
#363 #710731
Нубовопрос.

Возможно ли получить из OS X приложения доступ к подключённому к айфону? Или, можно ли синхронизировать два дополняющих друг друга приложения без использования всяких айклаудов и т.д.?
Грубо говоря, хочу следующее:
1. Оба устройства подключены к одной сети.
2. Запускаю на телефоне приложение, тыкаю "sinhronizirovat", он магическим образом находит компьютер (через bonjour какой-нибудь) и пытается подключиться.
3. На компьютере висит даемон, ждущий этого подключения.
4. Тыкаю на телефоне одну из двух кнопок (компьютер -> телефон или телефон -> компьютер), и он начинает передавать данные в нужную сторону.

Такое возможно без особых костылей сделать? Вроде бы всё довольно очевидно, кроме нахождения нужного компьютера в сети. Бонжур этот же мне поможет сделать, верно?

Или, может, стоит как-то по-другому организовать? Приложение уровня слежения за расходами, исключительно для личного пользования (по крайней мере, пока).
#364 #710759
>>710731

>Такое возможно без особых костылей сделать?


Немного даже перефразирую вопрос: не является ли предложенный мною вариант сам по себе костылём? Вдруг есть какие-то уже готовые элегантные решения. В гугле забанен честно.
#365 #710839
>>710731
сделай через любой веб сервис, раньше я бы предложил парс, но ему осталось меньше года, актуальные данные можно хранить сразу в их базе, более того, по обновлению данных можно рассылать пуш нотификацию что приехали новые данные
>>710970>>711462
#366 #710970
>>710839
Не хочу я никаких веб-сервисов, потому что обязательно будут проблемы либо с их, либо с моей стороны (у меня сейчас интернет говно, и лучше не предвидится в ближайшее время). Тем более в их базах там что-то хранить, ну его. У меня есть амазоновский сервер, так что если уж и надумаю через интернет делать, то со своим, и пуши оттуда же, но мне это нинужно, я и так знаю, когда новые данные приехали — когда я их туда ввёл.
#367 #711428
>>709896
Реквестирую пару идей для домашнего проекта, клон чего-нибудь? Обязательно в стор выкладывать?
#368 #711430
#369 #711462
>>710839

> раньше я бы предложил парс, но ему осталось меньше года


Парс ушел в опенсорс и теперь его, даже с дашбоардом, можно без проблем поднять на своём сервере.
#370 #711895
Салют, программаны
Есть смысл после 6 лет веба в ios перекатываться? Как с работой/зарплатами? Хайп еще не прошел? Какие перспективы?
>>711906
#371 #711906
>>711895
у меня для тебя есть новости от торговцев iphone совместимыми продуктами, типа чипов для конекта к устройствам чере зашифрованный интерфейс. Вот, продажи их упали на 220 процентов. Выводы делай сам.
>>711911>>711964
sage #372 #711911
>>711906
Действительно, вывод напрашивается сам: все переходят на беспроводные технологии.
Но причем тут это?
>>711912
#373 #711912
>>711911
Даже если будет беспроводной доступ, ты без этого чипа не сделаешь аксессуар для айфона(пэда, пода) которое носит логотиа MFI. так на вскидку.
>>711932
#374 #711932
>>711912
Так зачем, если сейчас большая часть аксессуаров работает через wi-fi.
>>711936>>711946
#375 #711936
>>711932
потомучто ты не можешь слать низкоуровневые комманды на девайс без предворительной зашифровке сертификатом в чипе от эпл.
>>711947
#376 #711946
>>711932
Вопрос такой, можно ли добиться схожей функциональности без лишних костылей, если н использовать аппрув и возможности программы MFi?
#377 #711947
>>711936
Ну все тогда, сливаем воду. Пошел учебник по ведру качать.

А если серьезно подойти к вопросу: осилить несколько курсов, книг, что-то из фундаментального, то есть шансы не остаться бомжем?
>>711951
#378 #711951
>>711947
Тебе чел пишет, что количество контор которые хотят поучвствовать в донает Apple, для их типа лицензируемой платформы упало почти в 2.5 раза. Люди платили за воздух конкретный бабки, теперь такая штука больше не катит, эпл не генерирует деньги как раньше. Закат близок друг. Дерзай, самое время.
>>711953
#379 #711953
>>711951
Дроид не дроид, Весь мобильный дроч будет там же.
#380 #711964
>>711906
Эта информация где-то в интернете есть?
>>711967
#381 #711967
>>711964>>711964
Это инсайд покачто, увидешь в июле. Удачи бро
#382 #712009
>>711967
Очередный инсайдовый всадник апокалипсиса. Нюню.
#383 #712019
>>712009
Да мы вас говноедов знаем. чуть что тк сразу говна поесть, никогда не поверим в инфу которая говорит что-то о будущем.
>>712061
#384 #712061
>>712019
Лол. А ты из будущего приехал что-ли, неговноед? С новым дешман SE продажи аппла только вырастут. Вырастут и продажи приложух. Мантра про то, как всё будет плохо, звучит уже последние лет 8, с того момента, как всё началось. Конкуренцию срезать нужно, но не итт, неговноед, не итт. Запомни: не итт.
>>712064>>712126
#385 #712064
>>712061
Да мне похуй, можешь идти дальше торговать погремушками.
>>712106
#386 #712106
>>712064
Кому похуй, тот идёт нахуй. Просто запомни это, и расходимся.
#387 #712126
>>712061

>С новым дешман SE продажи аппла только вырастут.


От этого, кстати, пригорело. Все вокруг кричали, что SE никто не купит, херня, в день выхода у главного входа в эппл стор только три бомжа были, кококо. Пришёл в эппл стор на следующие выходные: "SE нет, когда будет — не знаем".
>>712127
#388 #712127
>>712126
"Нет" — в смысле, закончились.
#389 #712282
>>712009
Ты уже больше 10 лет каждый год как поехавший пророчишь смерть яблокам.
Кому верить? Ебанутому анониму, возомнившему себя вангой, или очевидно самой дорогой корпорации в истории цивилизации?
Для тебя есть новость.
Ты. Лично ты. В данном случае вот конкретно ТЫ - сосешь и идешь нахуй. Бодро, без оглядки. А мы тебе в след еще опущенские прибаутки отвесим. Потому что ты и есть опущенец.
>>712569
#390 #712284
>>712009

промазал
>>711967
#391 #712321
Эпплофобы это такие чуваки которых на 4чане кличут "manchild".

Свободное время тратят на хейт чего-то популярного. "Назло маме отморожу уши."
#392 #712569
>>712282
В общем-то всё верно, но ты ошибся аноном. Вот этот >>712009 вроде наоборот иронизирует над этим >>711967
>>712580
#393 #712580
>>712569
Да никто не над кем не иронизирует.
Просто пердаки потихоньку нагреваются, глядя на последние тенденции, вот и кудахчат.
#394 #712697
Началось все с

>Есть смысл после 6 лет веба в ios перекатываться?



А потом уже пошли пророчества и путаница в ссылках на посты.

Ничто не вечно, и Apple тоже. Но Apple это не таз и не корыто, которое бульк и потонуло. Это титаник, который будет тонуть 2-3 года.

В ios перекатываться смысл есть, пока тебе нужна интересная работа с максимальной оплатой. На сегодня это яблоки.

А когда оно явно начнет тонуть (как говорят местные ванги) - у тебя будет предостаточно времени, знаний и опыта, чтобы спокойно перекатиться на следующего по списку кандидата дроид
>>712737
#395 #712737
>>712697
Все не так просто, мой друг.Эпл не может утонуть если мобильная движуха будет все еще активно развиваться. Если потонет эпл, то это будет значит что тебе придется перекатываться не на другую моб платформ, а вообще в другой домен.
>>712774
#396 #712774
>>712737
Но Microsoft же в свое время феерично просрали платформу (будучи основным игроком какое-то время). Мобилы до сих пор живы, а микрософту места нет в этой области. Любой может ошибиться.
>>712780
#397 #712780
>>712774
Ну я не припомню ниодного разработчика, кто перекатился из Windows Mobile, в IOS. Там парадигма оказалась совсем другая, и по тем меркам передовые спецы в итоге оказались обезьянами неосиляторами.
>>712790
#398 #712790
>>712780

>Там парадигма оказалась совсем другая


Угу. Фотонно-квантово-глюонная.

Разница между платформами - точно такая же, как разница между любыми двумя фреймворками.

Не смог перекатиться - ну значит там разработчик, который умеет писать только по готовым сниппетам, а думать не умеет. Не в платформах тут дело, а в головах.
>>712797
#399 #712797
>>712790
Если вспомнить те веремена, то во всех PocetPC и мобилах был швейцарских набор из базовых приложений, и они имели просто монополию на установку. Где все эти разрабортчики, кроме приложений от крупных контор? Ничего в IOS или Андройд по схожему функционалу и такойже популярности не попало. Резко настало время новых девелоперов, которые правильно подали схожий функционал и заняли топ 10. Так вот рассуждать о том, что перекатится легко - это пиздабольство начинаещоге кодера, если прилипнишь знатно к своей платформе, то сдохнешь вместе с ней.
>>712818
#400 #712804
Поясните за реальное состояние swift. Если он не стабилен для production, то поясните в деталях.
>>712843
#401 #712818
>>712797

>начинаещоге кодера


В данном случае перед тобой рассуждает разработчик со стажем 10+ лет под 5+ платформ (среди них натив десктоп, натив мобилы, веб). Так сложилось, что пишу сейчас под иос (бабла больше).
Перекатываться - легко.
>>712860
#402 #712843
>>712804
Стабилен - рано. Учи его (пара недель, он простой), но не в продакшн. Перекат будет позже.
>>712894
#403 #712860
>>712818
Если ты выбрал эту платформу по принципу где реально бабла больше, то, у меня для тебя плохая новость, ты, явно, хуево разбираешься в рынке, а значит и во всем остальном.
#404 #712884
#405 #712894
>>712843
Блядь, спасибо, твою капитанщину я и в шапке мог прочитать. По пунктам расскажи, почему swift нельзя прямо сейчас использовать в продакшене.
>>713006
#406 #712906
>>712860
Ну давай померяемся пиписьками, нехуево разбирающийся ты наш.
#407 #712927
>>712860
А где тогда больше, уважаемый?
>>712933
#408 #712933
>>712927
1C всегда сможешь на хлеб намазать. Стабильно тридцатка в регионах, там про всякие мобилы даже не слышали, так что проще сразу с голоду подохнуть.
Не удержался и протолстил.
>>712964
#409 #712964
>>712933
Это не толстота. Это реально ход ваших мыслей, не это ну значит 1с. Показательно весьма.
#410 #712967
>>712860
Поддержу уебков выше, тут реально бабло высокое капает
#411 #713006
>>712894
Местами сыровато, местами тормозно, местами жырно.
Прям вот огненной причины его трогать нет; пиши, пожалуйста. Только будь готов, что в середине проекта будешь все переделывать с нуля на обж.
Хотя полно людей простенькие проекты на свифте нормально завершают.

Mission critical - obj-c, творческая свобода - пробуй свифт. Все как в шапке. Платина.
>>713468
#412 #713343
Как в телеграм достучатся? Инвайт битый!
>>713464
#413 #713442
Анон, в какую сторону копать ньюфагу, я сегодня узнал на хабре про такую штуку как фаербейз.
Так вот, есть приложение. нужно сделать там возможность использования без регистрации, но тогда данные просто сохраняются на телефоне, а если человек залогинится через гугл или что там, то эти данные буду хранится на сервере - допустим тот же фаербейз.

Как мне вообще всю эту цепочку осуществить, куда копать, что делать?
>>713456
#414 #713456
>>713442
Данные на телефоне сохраняются в любом случае (кеширование). Делаешь сначала это. Потом разбираешся с апи фаербейза. Учишся закидывать туда рандомную хуиту, потом вытаскивать. Потом закидываешь данные с телефона и делаешь синхронизацию. При запуске приложения (или логине юзера) вытаскиваешь инфу с фаербейза и обновляешь кеш в телефоне. Когда юзер изменяет инфу - обновляешь в телефоне и в фаербейз.
>>713482
#415 #713464
>>713343
не ходи туда, там долбоебы одни
#416 #713468
>>713006
работают на фрилансе на свифте, брат жив
#417 #713482
>>713456

>Делаешь сначала это


мне кордату использовать для этого или рилм?
>>713494
#418 #713494
>>713482
Зависит от приложения. Если хватит функционала то лучше использовать рилм так как он проще. Кор дата сложнее, но у нее есть божественный NSFetchedResultsController.
>>714087
#419 #713534
>>710548
Ну проверки и проверки, размер обновления-то тут при чём? Или ты намекаешь, что можно было бы по кусочками вирус добавляя, при этом пока целиком не соберётся, обнаружить нельзя?
>>713563
#420 #713556
Возможно ли скомпилировать OS X приложение с новыми фичами, но как-то оставить возможность запускать его и на более старых версиях, где эти штуки будут просто отключены? В частности, NSGestureRecognizer интересует, который только в 10.10 завезли (лол, спустя 6 лет после добавления мультитача на ноуты).
Или только две разных версии делать? Как в таком случае работать с кодом, если разница там в несколько методов будет? Не копипастить же между проектами.
>>713564
#421 #713563
>>713534
Размер тут не при чём, это ты зачем-то форсишь про размер. Вопрос стоит так: разрешать или вообще не разрешать. Если разрешаешь, то включаются новые риски и неважно, какого размера обновление.
>>713565
#422 #713564
>>713556
Определяй, реагирует ли приложение на твою фичу, и если нет, то включай другой вариант. Если решить делать две разных версии, то используй таргеты.
>>713579
#423 #713565
>>713563

>это ты зачем-то форсишь про размер


>Вопрос стоит так: разрешать или вообще не разрешать


Что я форшу? Вопрос стоял так -> >>709103
Что разрешать ты там собрался? Почему на компьютер обновления обычно маленькие и тебе не нужно весь фотошоп перекачивать, а на ios надо?
>>713567
#424 #713567
>>713565

>Почему на компьютер обновления обычно маленькие и тебе не нужно весь фотошоп перекачивать


Ещё раз. На компьютер ты поставил фотошоп и разрешаешь ему делать много разного с твоей системой. С этого момента ты теряешь разумный контроль за ним. В иос миллион разрабов, и если за ними не следить, то сам представь, что будет. Поэтому условно опасные обновления проходят проверку, без докачек. Хотя по факту ты можешь настроить так, чтобы обновлять кое-что по мелочи. Вопрос, правда, в том нахуа это нужно. Вряд ли ты будешь каждый день поправлять размер ячейки.
>>713574
#425 #713574
>>713567

>Хотя по факту ты можешь настроить так, чтобы обновлять кое-что по мелочи.


То есть, техническая возможность есть, но (почти) никто не пользуется, правильно я понимаю? Или это всё самодельные костыли будут?

>Поэтому условно опасные обновления проходят проверку, без докачек.


Так можно ж это, установить этот мини-апдейт, а после него проверку сделать. И на этом и порешать, безопасно оно или нет. В чём разница-то?

>Вопрос, правда, в том нахуа это нужно.


Например, чтобы можно было без проблем без вайфая обновиться, а не искать, находясь в стране третьего мира не рашка, интернет который хоть полчаса стабильно проработает, чтобы не дропнуть соединение (а докачки, походу, нет); чтобы не качать полчаса эти ёбаные 100+ мегабайт ради сомнительного нового говна, отказаться от которого нельзя, потому что при каждом запуске тебе в рожу выскакивает сообщение о новой версии.
>>713580>>713606
#426 #713579
>>713564
Так он мне сбилдить не даёт ведь, ругается: "коко, вы использовали X, а ваш деплоймент таргет слишком старый" и всё. Если сделаю билд для последнего, то вангую просто креш при запуске на старой версии. Впрочем, не пробовал.
Или если через код добавить, а не сторибоард, то он и не заметит, что я этот gesturerecognizer использовал?
>>713583
#427 #713580
>>713574

>техническая возможность есть


Есть, но ограниченная.

>а после него проверку сделать


Нет, потому что юзеры уже словят твоих условных вирусов и всякой непотребщины.

>Например, чтобы


Речь шла о том, что непонятно, зачем постоянно докачивать мелкие правки. Для крупных правок тебе всё равно придётся перезаливаться по полной.
>>713585
#428 #713583
>>713579

>Если


>вангую


>не пробовал


Давно бы уже попробовал и не ванговал.
#429 #713585
>>713580

>Есть, но ограниченная.


Чем?

>Нет, потому что юзеры уже словят твоих условных вирусов и всякой непотребщины.


В смысле? Просто не пускать в аппстор до проверки и всё. Ведь с большим обновлениями сейчас так и есть, или нет? Я же просто не в курсе, как там вообще это происходит и ни малейшего понятия не имею, в чём состоит эта самая "проверка" (сорцов же у них нет), потому и спрашиваю.

>что непонятно, зачем постоянно докачивать мелкие правки.


А какие ещё правки можно вносить каждые две недели с охуительными пометками "General Improvements" или вообще копипаста "Every update includes improvements for speed and reliability", как у фейсбука в каждом обновлении.
>>714283>>714293
#430 #713606
>>713574
Наверное просто исторически так сложилось. В первые телефоны приложения заливались полностью (когда появилась такая возможность), возможностью патчить их не озаботились, так как возможно посчитали лишним - приложения то маленькие были. С того времени так и тянется, так как никому не выгодно что-то менять. Забавно сложилось на андроиде - разного рода патчеры там есть, но они только для вырезания всякой хуйни (типа рекламы). Обновления приложений ввиде патчей никто не выпускает, насколько мне известно.
>>713610>>714380
#431 #713610
>>713606

> Обновления приложений ввиде патчей никто не выпускает


А нахуй это нужно, если благодаря java мои приложения весят в районе 3MB.

Для игр с их гигабайтами текстур в GooglePlay отдельный механизм есть.
#432 #714087
>>713494
т.е. пишу дату в рилм, затем отсылаю данные на фаербейз, если юзер зашел с нового девайся, то проверяю пустая ли база или нет или как-то так и тяну данные в рилм?
>>714162
#433 #714162
>>714087
Типа того. Сохраняй время обновления инфы и при синхронизации затирай более старую. Там нужно продумать разные ситуации, типа того что юзер потерял связь, обновил инфу в телефоне, при востановлении связи нужно обновить в фаербейз (наверное) а не наоборот.
>>714181
#434 #714181
>>714162
Блядь, как все сложно звучитю
#435 #714283
>>713585
Ты походу вообще не понимаешь, о чём речь. Перечитай то, что тебе сверху написали, и сопоставь свои вопросы.

>Чем?


Требованиями Эпла, чем.

>Просто не пускать в аппстор до проверки и всё.


О чём ты вообще? Вот тебя и не пускают в аппстор до проверки, поэтому тебе надо выкатывать обновления через аппстор. БИНГО! Ты уж определись.

>каждые две недели с охуительными пометками "General Improvements"


Никто не заставляет тебя выкатывать апдейт каждые две недели. Равно как и обновлять свой фейсбук. Равно как и считать фейсбук за правильную модель обновлений.
>>714380
#436 #714293
>>713585

>понятия не имею, в чём состоит эта самая "проверка" (сорцов же у них нет)


Ну блять! Как ты думаешь, наверное они заранее озаботились тем, что всё видеть и без твоих сорцов, прикинь?
>>714380
71 Кб, 743x603
#437 #714311
Анон, как сделать так, чтобы текст, который не помещается по ширине в контейнер или в ячейку таблицы, переносился на другую строчку?
>>714380
#438 #714380
>>714283

>Ты уж определись.


В смысле определись? Ты говорил, что частичные обновления какие-то там вирусы могут принести, а так проверка есть. Но какая разница, проверять целиком заново собранное приложение или просто пропатченное, включая процесс патчинга, если надо? Не давать пользователям обновление или патч до проверки. В чём такая большая разница-то с точки зрения "безопасности"?

>Требованиями Эпла, чем.


Э-э, вопрос был "в чём проявляются ограничения".

>Никто не заставляет тебя выкатывать апдейт каждые две недели.


Так я и не собираюсь, блин. У меня униные от того факта, что куча приложений так делают, вот и хочу узнать, так сложилось, как писал >>713606, или действительно есть острая необходиостс делать именно так, я тогда заткнусь и уйду. Про "можешь не обновлять" уже писал. Да и не в этом состоял смысл того предложения, а в том, что по большей части все эти апдейты, вероятно, и есть "мелкие правки". Разве что они по всему приложению раскиданы могут быть.

>>714293
Спасибо, а то я не догадался, что у них есть возможность делать необходимые проверки. Я имел в виду, что детали никакие не знаю, и может и правда есть какие-то возможности по одному символу кода незаметно добавлять в каждом обновлении, а потом хуяк-хуяк и eval().

>>714311
Если UILabel, то там атрибут lineBreakMode есть, а так через attributedText можно.
>>714437
#439 #714437
>>714380

>Но какая разница, проверять целиком заново собранное приложение или просто пропатченное


Разница есть - это два разных процесса, которые требуют дополнительные ресурсы. Одно дело - ты запускашь условно (хотя так и есть наверянка) готовые скрипты, которые тебе говорят "да/нет", ну может ещё "подозрительно", и тогда ты, как низкоуровневый проверяющий персонал, связываешься с супервайзерами. Здесь всё унифицировано. И другое дело, когда под каждый патч ты делал бы свои скрипты - ты подумай над всеми этими миллионами приложений, и ответ просто нет.

>в чём проявляются ограничения


Причин много - https://developer.apple.com/app-store/review/rejections/, использование private API в том числе. Из списка причин ты можешь увидеть, что проблема не только в вирусах, но также в том, что Апл хочет поддерживать определённый уровень качества в магазине.

>вот и хочу узнать


Теперь узнал?
>>714445
#440 #714445
>>714437

>когда под каждый патч ты делал бы свои скрипты


Ну я как бы сравнивал способы:
1. Есть, формально, целиком новое приложение -> запускают скрипты.
2. Есть старое приложение, на которое ставится патч, получая то же приложение, что и в первом способе -> запускают скрипты. Тут, вероятно, да, добавляется слой скриптов для проверки того, куда патчер лезет в процессе, но ведь это тоже стандартное всё было бы и один раз писалось бы.

>Причин много


Только к способу обновления ведь это отношения не имеет.

>Теперь узнал?


Ну, так, примерно. "Тип работы меньше и исторически так получилось".

В общем, спасибо за ответы, можно закончить.
#441 #715347
Какие бумажные книги посоветуете купить? Я смотрю на нойбурга, правда пугает что она по иос 7
>>715391>>715392
#442 #715391
>>715347
все устаревшие, разве что Гэлловей сила обджектив-си 2.0
>>716018
#443 #715392
>>715347
а, знаю, купи макконела complete code
>>716018
#444 #716018
>>715392
>>715391
Макконел, гэллвоей, что еще?
>>716042
#445 #716042
>>716018
Чистый код Мартина
#446 #716059
>>630631 (OP)
Второй курс с курсеры Build a Foundation in iOS, который называется Networking and Security in iOS Applications, вообще не пошел. Первый мне очень понравился. А этот никак не могу себя заставить пройти дальше 2-ой недели. Препод разочаровал, походу он сам не шарит в том, что говорит, очень много косяков в видео. А когда он начал в своих видосах просто раскомментировать код, я понял что надо дропать.
В очередной раз убедился, что лучше ничего Стенфордовских лекций нет. Жалко только, что новый курс для iOS 9 они выкатывать в itunes-u не собираются походу.
>>716072
#447 #716072
>>716059
Нахуя вообще проходить какие-то левые курсы, когда есть охуенная официальная документация? Вот, блять, просто бери и читай. Рили, я, как перекатившийся из C++, просто охуеваю от качества и обширности офф гайдов.
>>716081>>718563
#448 #716081
>>716072
Соглашусь с тобой тут. У меня тоже сложилось впечатление, что в офф. доке есть все, что нужно. Но вот поиск и навигация по доке это какой-то пиздец по-моему.
>>716156
#449 #716098
Поясните тупому как данные между классами передавать?

Вот есть класс huymodel - там есть проперти, в проперти загрузил и записал данные

self.pizda = данные из интернета

1)Правильно что делаю модель и маплю к ней данные?
2)Как передать эти замапенные данные куда либо в другой класс?
>>716136
#450 #716136
>>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 = данные из интернета и все кому нужно узнают что модель изменилась и могут обработать.
>>716160
#451 #716156
>>716081
Там есть все, что тебе когда-нибудь может пригодиться. Чтобы лучше по этой куче ползать рекомендую выделить день (проверено - хватает), проползти по всем разделам, посмотреть какие есть семплы, какие темы рассматриваются (референсы пока не смотреть!). Неспешно, чтобы не сдохнуть от скуки, зевоты и рутины. Останавливаться на интересном, не заморачиваться на структуре доков. Через месяц процедуру повторить. После этого в доки будешь заходить как в дом родной.
>>716438
#452 #716160
>>716136
бля, эти обзерверы не слишком ли сложно?
>>716192
#453 #716192
>>716160
А как по другому? Все сведется к наблюдению, потому-то по смыслу это наблюдение и есть. Это кажется что сложно, если разобраться то все просто. Можно попроще через делегата сделать. В модели проперти делегат, и она просто вызывает какой-то метод делегата когда меняется. Или KVO навернуть, но так наверное даже сложнее.
>>716334
#454 #716288
Пытался забилдить 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", но это вряд ли как-то может быть связано.

https://github.com/rsms/chromium-tabs/blob/master/src/Browser Window/CTBrowser.m#L28_L37

И вот тут тоже - https://github.com/rsms/chromium-tabs/blob/master/src/Browser Window/CTBrowserWindowController.m#L397

инб4: протухшее говно. Собственно, там скролла в табах и не оказалось, а мне этого в NSTabView и не хватает, поэтому всё равно использовать не буду.
>>716289>>716294
#455 #716289
>>716288

> [i/]


чйорт. Нувыпонели, там звёздочка должна была быть.
#456 #716294
>>716288
А впрочем, скачал чей-то форк, по-новее, и там как раз [object_getClass(self) browser].

Что б уж не совсем зря пришёл: правильно ли я понимаю, что это сделано для наследования (т.е. создавался правильный класс без необходимости оверрайдить этот метод)?
#457 #716334
>>716192
Делегатом научи
>>716356
#458 #716356
>>716334
Да там почти тоже. Создаешь протокол huymodelObserver, в нем объявляешь сообщение типа -(void)modelDidRecieveData:(huymodel*)model. Вообще протокол не обязателен, он для статического контроля и чтобы автодополнение работало, лучше всегда с протоколом делать.
В модели создаешь проперти delegate, тип проперти делаешь id<huymodelObserver> - это значит любой класс который соответсвует протоколу huymodelObserver. И дальше в модели каждый раз когда что-то изменяешь делаешь [self.delegate modelDidRecieveData:self]; - лучше перегрузить соотвествующие проперти (pizda), чтобы когда ты изменяешь проперти сразу и сообщение делегату отсылалось.
А тот объект что должен сообщения получать назначаешь делегатом, что-то типа model.delegate = self. Ну и реализуешь в нем метод modelDidRecieveData: - каждый раз когда меняется модель будет вызывать этот метод указателем на модель откуда ты сможещь вытащить данные. Метод можно поменять для удобства, например сразу присылать изменившиеся данные. Или там несколько разных сделать и т.п.
>>716809
#459 #716438
>>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-версий. Как по мне так удобнее.
Аноним #460 #716659
Аноны, подскажите. Есть строка NSMutableString с большим набором цифр, ну например "65431854654564867". Мне надо заменить 65 из середины на 99, чтобы получилось "65431854994564867". Я могу найти это 65 в середине через substringWithRange, могу так же удалить через deleteCharactersInRange. Но почему-то не могу вставить туда 99, или присвоить значение 99 тому участку хотя бы после удаления. Поясните что я упускаю, в чем туплю.
>>716751
#461 #716751
>>716659
Что именно не получается? Попробуй - replaceCharactersInRange:withString: или
- replaceOccurrencesOfString:withString:options:range:
>>716760
#462 #716760
>>716751
Не получается заменить там символы.
Вот сейчас пытаюсь через insertString atIndex, получаю красную ошибку Thread 1 Signal SIGABRT. Ну, думаю не из-за этого, а из-за чего-то другого. Просто я понял частично фейл свой - без квадратных скобок это вообще не работает, запутался. Ну и сайт какой-то левый юзал, получше вот нашел https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSMutableString_Class/#//apple_ref/occ/instm/NSMutableString/replaceOccurrencesOfString:withString:options:range:
#463 #716783
Ананасы, я вот сейчас задумался:

В Swift есть корутины (сопрограммы) хоть в каком-нибудь виде?
И если нет, то есть ли планы на них в след. версиях?

Swift знаю поверхностно, но нигде не встречал упоминания о использование.
Вот хотя бы поддержка async/await была бы очень полезна.
#464 #716809
>>716356
Можно проектом самый простой пример и который на практике используется для передачи, я б посидел исходник поковырял б
#465 #716843
Анон, поясни за монетизацию приложений в аппсторе.
Какую показывать рекламу чтобы епте срубить больше бабок. Интересует, как примерно подсчитать профит в день с 1к пользоветелей посмотревших 1 раз видос с рекламой/баннер с рекламой.
Нашел такой калькулятор.
http://ryanmorel.com/mobile-advertising-calculator/
можно ли ему верить? Алсо чему будет равен средний еСРМ и как его рассчитывают?
Приложение типа "игра для даунов". Бесплатное. В среднем пользоветель склоняется к просмотру ~5 видео реклам за сутки и постоянно на экране крутится баннер. Возможно для такой системы посчитать профит в единицу времени на 1000 пользователей, если положить что пользоветль сидит в день по 2-5-10 минут?
Опять же, тот калькулятор что я привел выше вообще близок к реальности?
#466 #717010
Блять, ебаный пиздец, а можно объявить глобальную переменную без хитровыебжопских способов?
>>717034>>717061
#467 #717034
>>717010
Всё, разобрался.
#468 #717061
>>717010
в той же имплементации можешь объявить ее и она будет видна отовсюду
>>717091
#469 #717091
>>717061
У меня там динамический массив был, я его переобъявлял и думал, что ничего не работает.
>>717193
#470 #717193
>>717091
меня лид недавно выебал, говорит нахуй ты там переменную в одном месте обьявил, она ж всей программе видна будет
>>717232>>717774
#471 #717232
>>717193
Ну а что делать, если моим функциям надо одновременно работать с одним массивом данных?
>>717246
#472 #717246
>>717232
инкапсулировать данные в классе?
>>717247
#473 #717247
>>717246
P.S. Где ты работаешь? Я тоже хочу там работать.
#474 #717408
Можно ли в NSTextView определить, на какую часть текста неведён курсор, чтобы какие-нибудь всплывающие окна прилепить? Знаю, что можно сделать ссылку в NSAttributedString с NSLinkAttributeName, но не в курсе, есть ли там обработчики hover'а или можно ли, хотя бы, свой хендлер вставить на клик, убрав стандартное поведение с открытиев сайта. Документацию по AppKitAdditions они, почему-то, удалили. https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSAttributedString_AppKitAdditions/index.html
#475 #717648
bump
#476 #717774
>>717193

>переменную в одном месте обьявил


>она ж всей программе видна будет


и что это за место такое?
>>718137
771 Кб, 320x320
Нид хелп #477 #718083
Гайз, в общем угораздило напроситься на собеседование junior ios, u know.
Подумал , что хуйня. Ну по сути так и есть , но мне тестовое выписали. Оно не то чтобы сложное - недотетрис (буквально причем - т.е просто анимация падающих фигурок), но я не знаю с какой стороны подойти - coregraphic, всякие кокоа или еще что-то. Подскажите путь наименьшего сопротивления. Просто я с виртуальной машины буду хуярить - а там обычный хеллеворлд тупит на икскоде, не то что сложное приложение.
В общем ткните пальцем , очень прошу
#478 #718119
>>718083
Наименьшее сопротивление - CAShapeLayer и UIBezierPath
Чуть сложнее - CoreGraphics и SpriteKit.
CAShapeLayer и CoreGraphics - одинаково медленные (но для примитивов подойдут)
SpriteKit - быстрый, но с ним я не работал.
.
Я в последнее время для быстрой отрисовки чего-либо, использую данную либу: https://github.com/memononen/nanovg
Она довольно легко прикручивается к GLKit'у и позволяет рисовать в 60fps всё что хочешь.
Если её прикрутишь - все вообще охуеют как ты можешь. Но хз, нужно ли оно в контекте тестового задания
.
Для начала напиши движок своего тетриса с расчётом фигур их положения и перемещения на экране, потом запили модуль рендерера и говори ему что рисовать. Таким образом ты сможешь разнести логику и графику в разные модули и легко, в случае чего, поменять метод отрисовки.
#479 #718123
>>718083
Опять же, если конторка пилит всякие социальные игры - то тут лучше cocos2dx брать и не ебаться
#480 #718137
>>717774
Тоже интересно. Оно ж везде видно только если в префиксе заебенить
>>718200
#481 #718149
>>718083
Берешь любой гейм двиг и пилишь.

Если требуют нативными вьюхами / слоями - шли их нахуй. Серьезно, они наглухо поехали. Нет на планете такой задачи, которая оправдает такое собеседование, Пусть они хоть кварки препарируют, все равно дно. Выдай говно - назови фамилии.
>>718281
#482 #718200
>>718137
Экстерн конст, не? И заголовок прописывать
>>718236
#483 #718236
>>718200

>Экстерн конст, не? И заголовок прописывать


так его потом импортировать везде надо, чтобы отовсюду видеть
#484 #718281
>>718149

>Нет на планете такой задачи, которая оправдает такое собеседование


Вообще-то есть. Далеко не все игровые движки ложатся на UIKit гладко. Большинство представляет из себя полноэкранный рендерер, с полностью своей логикой интерфейса, взаимодействий и всего-всего. А иногда тебе надо отрисовать какую-то анимированную сложную хуйню внутри uiview и не ебать мозг.
#485 #718351
>>718083
гайз, это я.
спрайткитом делаю.
относительно просто - ну т.е по-крайней мере представляю примерно что делать.
но я не соображу за координатную сетку на IOS.
Поясните пожалуйста, что за фигня с ней?
те кто понял о чем я
>>718367
#486 #718367
>>718351
>>718351
Да нормальная координатная сетка - сверху слева начинается, как и везде.
Может тебя смущает соотношение пиксель-поинт, которое зависит от разрешения матрицы аппарата?
>>718391
#487 #718389
Тут под 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. Меняем у фрейма высоту.
Вот эта вот часть с двумя сменами фрейма меня настораживает.
>>718413
#488 #718391
>>718367
>>718367

Есть такая байда как :

CGRectMake(0, 0, 50, 50)];
и
position = CGPointMake(100, 200);

в первом 0,0 - указываются как координаты.
во втором - позиция.
Вот не пойму в чем разница, и как это работает.
>>718407
#489 #718407
>>718391
В первом случае ты создаёшь прямоугольник (RectMake), во втором - точку (PointMake).
Прямоугольнику ты задаёшь верхнюю левую координату, с точкой то же самое.
Т.е. CGRectMake(0, 0, 50, 50)]; - прямоугольник, расположенный в нулях.
CGPointMake(0, 0) - такая же точка, в нулях.
#490 #718413
>>718389
организуй всё списком - тэйблвью или коллекцией c лайаутом, а потом по systemLayoutFittingSize вычисляй. Как это обычно на ios делается
>>718463
#491 #718463
>>718413
Тейблювью не катит, потому что элементы могут быть разной высоты. Коллекция же, по сути, то же самое, не?

Пытался сейчас с constraint'ами но хрень какая-то получается: либо ругается на наличие двух конфликтующих (Autoresizing и та, что я добавил, чтобы был на каком расстоянии от вышестоящего). Если убрать авторесайзинг - вообще не рисует.
Всякие intrinsicContentSize и fittingSize (systemLayout... только в UIView есть, т.е. айос) по нулям постоянно.

>Как это обычно на ios делается


Так мне не на айос же.
>>718492>>718495
#492 #718492
>>718463

>Тейблювью не катит, потому что элементы могут быть разной высоты.


Так бля, вычисляй высоту динамически. Кэшируй если надо.
>>718552
#493 #718495
>>718463

>Пытался сейчас с constraint'ами но хрень какая-то получается:


Ну блять, готовь констрейнты аккуратно, понимая что ты делаешь и ругаться не будет.
Или по-твоему автолайаут делали идиоты и он не нужен? 99% интерфейсов на macOs/ios сейчас это автолайаут или производные от него (вычисления systemLayoutFittingSize, и натягивание получившегося размера на фрейм нужной вьюхи)
>>718552
998 Кб, 312x176
Need for Help (eron don don) #494 #718499
Гайз, обновляю сообщение.

в общем угораздило напроситься на собеседование junior ios, u know. Подумал , что хуйня. Ну по сути так и есть , но мне тестовое выписали. Оно не то чтобы сложное - недотетрис (буквально причем - т.е просто анимация падающих фигурок),.
Не знал с какой стороны подойти.
Посоветовали SpriteKit. В принципе направление действия понял : вот сейчас думаю, как запилить, чтобы динамически
создавались геометрические примитивы рандомные.
#495 #718522
>>718499
Вообще-то мы рассчитывали на то, что ты сам напишешь тетрис. Может объяснишься?
>>718527
#496 #718527
>>718522
азаза)
я сам пишу), но от помощи не отказываюсь)
#497 #718530
>>718499

>как запилить, чтобы динамически


>создавались геометрические примитивы рандомные.


Блядь, рандом массив пилишь с объектами и все
>>718537>>718634
#498 #718537
>>718530
да знаю, что по сути сам и ответил на вопрос то.
>>718539
#499 #718539
>>718537
просто надо было вслух проговорить.
#500 #718552
>>718495
>>718492

>Так бля, вычисляй высоту динамически. Кэшируй если надо.


Я ещё раз взглянул на NSTableView, и-таки можно сделать так, чтобы разные ячейки были разной высоты. Почему-то до этого читал, что нет. В общем, буду дальше играться.
#501 #718563
>>716072
Не понятно же нихуя для мимохуя. Вот выполняешь какие-то штуки безсчетно а что делаешь не понимаешь. Плюс так с наскока читать ты с вероятность 99% перегрузишь свой и так тугой мозг не нужной хуетой(но ты то не будешь знать, что она не нужна, что тебе ее делать дадут только через года 2)
#502 #718634
>>718530
>>718499

плюс на новом языке сходу писать сложно. хоть это
и онли май проблем.

такая хуйня :

Знаю, что с методами и объектами на обжектив си, работают не так как в с++,. туплю короче.

Хочу блок кода, который делает кубик, превртить в функцию\метод или еще что, чтобы либо в него передавать параметры, либо тупо конструктор для этой хуйни запилить.
но эта фигня с методами мозг выносит.
гайз, подсобите плз.

:

- (SKShapeNode ) Blochim:(int, int )
{
SKShapeNode
temp= [SKShapeNode shapeNodeWithRect:CGRectMake(-30/2, -30/2, 30, 30)];
temp.position = CGPointMake(190, 320);
temp.strokeColor = [SKColor redColor];
temp.fillColor = [SKColor yellowColor];
temp.name = @"Quad1";
temp.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:temp.frame.size];
temp.physicsBody.friction = 1;
}
>>718779>>719226
#503 #718779
>>718634

Короче, сделал чуть по колхозному, в моем понимании :

SKShapeNode arrayfig[100];

for (int i =0; i<5 ; i++)

{
arrayfig=[SKShapeNode shapeNodeWithRect:CGRectMake(-30/2, -30/2, 30, 30)];
arrayfig.position = CGPointMake(200
i, 30+i*100);
arrayfig.strokeColor = [SKColor blackColor];
arrayfig.fillColor = [SKColor redColor];
arrayfig.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:arrayfig.frame.size];
arrayfig.physicsBody.friction = 1;
[self addChild:arrayfig];

}

но работает как мне нужно.
гайз, вопрос все - равно. это сильно говнокод?
хочу по красоте сделать все-таки.
недоконструктор запилить, вся хуйня.
#503 #718779
>>718634

Короче, сделал чуть по колхозному, в моем понимании :

SKShapeNode arrayfig[100];

for (int i =0; i<5 ; i++)

{
arrayfig=[SKShapeNode shapeNodeWithRect:CGRectMake(-30/2, -30/2, 30, 30)];
arrayfig.position = CGPointMake(200
i, 30+i*100);
arrayfig.strokeColor = [SKColor blackColor];
arrayfig.fillColor = [SKColor redColor];
arrayfig.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:arrayfig.frame.size];
arrayfig.physicsBody.friction = 1;
[self addChild:arrayfig];

}

но работает как мне нужно.
гайз, вопрос все - равно. это сильно говнокод?
хочу по красоте сделать все-таки.
недоконструктор запилить, вся хуйня.
>>718794
#504 #718794
>>718779
гайз, нужно добавить паузу между
циклами.
неужели в обжект си нет нормального споособа?
>>718808>>718853
#505 #718808
>>718794
nanosleep();
>>718812
#506 #718812
>>718808
это ж просто остановит работу потока.
Тогда может быть
мне в цикле просто проверять - упал ли блок или нет
>>718821
#507 #718821
>>718812
Через dispatch можно
>>718839
#508 #718839
>>718821
ругается на массив,
>>718895
#509 #718853
>>718794

>


решил забить на задержку.
подумал, что лучше будет спускать
следующий блок, когда предыдущий уже
упал и лежит
*и будет лежать, пока чейни рядом.

как думаете, на координаты ориентироваться?
или у объекта должно быть свойство - on_the_flow?
#510 #718885
Парни, где проебался?
Нашел у объекта свойство - типа тру если он в покое.
замутил проверку, но хз.
Второй раз идти не хочет

do
{

arrayfig=[SKShapeNode shapeNodeWithRect:CGRectMake(-90/2, -90/2, 60, 60)];
arrayfig.position=CGPointMake(500, 800);
arrayfig.strokeColor = [ SKColor whiteColor];
arrayfig.fillColor = [SKColor blackColor];
arrayfig.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:arrayfig.frame.size];
arrayfig.physicsBody.friction = 1;
[self addChild:arrayfig];

++i;

} while (i<10 && arrayfig.physicsBody.resting == TRUE);
#511 #718895
>>718839
__block забыл поставить?
>>718904
#512 #718899
Если Яблоко в ближайшее время не добавит Vulkan api в OSX/iOS и не сделает Metal opensource то это будет полный провал и еще один гвоздь в гроб, которые забивает Тим Кук все последние годы.
>>718902
#513 #718902
>>718899
а зачем собственно? Даже сейчас OpenGLES 3 толком не утилизируется.
#514 #718904
>>718895

поясни плиз.
А то я уже столько раз переписывал
>>718908
#515 #718908
>>718904
может тебе пора уже немного почитать про программирование под ios в целом?
Ты будешь крайне хуёвым работником, если будешь действовать только методом тыка, не обладая хоть какими-то фундаментальными знаниями языка и платформы.
блок захватывает видимый скоуп в виде поинтеров и может только обращаться к переменным, не переназначая их. Если необходимо изнутри блока изменить какую-то внешнюю переменную - необходим модификатор __block
>>718909
#516 #718909
>>718908
так то ты прав)
и я бы так и сделал если бы специально целился
на иос.
но эта хуйня буквально случайно на голову свалилась.
если не прокатит - ладно, но если получится ничего плохого не вижу.

по поводу вопроса :
я пробую без таймера сделать.
Ориентируясь на коллизии в объекте.
>>718910
#517 #718910
>>718909

кидать следующий блок, когда предыдущий упал на дно.
#518 #718915
в общем , ориентироваться на коллизии не получается.
придется искать способ добавлять задержку временную
в цикл
#519 #719136
Я к вам снова с вопросом со стороны пользователя. Если в приложении можно кликнуть на что-то, что откроет страницу в сафари, там можно указать какой из табов использовать, нужно ли новый открывать и т.д.? Уже не первый раз замечал, что они хрень какая-то открывается в первой вкладке, удаляя ещё и историю из неё (т.е. не могу нажать назад и перейти туда, где она была). Это у меня телефон глючит, или в приложении криво что-то сделано?
#520 #719217
Только что потратил два часа на выяснение того, что если создавать объект UIWindow программно, то окно по умолчанию скрыто. Найс.

Тут уже хуй поймешь кого обвинять, ведь я-то честно прочитал доку до этого! А в ней нихуя не говорилось об этом. Только в ссаном примере создания окна для внешнего экрана можно увидеть, что оказывается, блядь, нужно менять hidden на YES. Ну ебана.
#521 #719226
>>718634

Гайз, поднимаю вопрос снова.
Подскажите плз.
Что делть с этим дерьмом?
Я тут прошелся по всяким форумам и прочему..
Мне надо вынести SKShapeNode - в отдельный поток?
998 Кб, 312x176
need for help... again Cd #522 #719258
Гайз, нашел вот это :
http://sysdev.me/rabotaem-s-taymerami/

процитирую :
парни, не пойму как это работает - поясните, плз.

NSTimer timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];

NSRunLoop
loop = [NSRunLoop currentRunLoop];

[loop addTimer:timer forMode:NSDefaultRunLoopMode];

time_t startTime, endTime;time( &startTime );

while (count <= 10 ) [loop runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:1]];

time( &endTime );

printf( "Time:t%dnCount:t%dn", (int)(endTime - startTime), count );
>>719295
#523 #719295
>>719258

парни, короче чуток разобрался

вот говнокод :

static SKShapeNode* arrayfig[100];
static int i=0;

{
....

[NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(testtimer) userInfo:nil repeats:YES];

}

-(void)testtimer

{

//for (int i=0; i<10; i++) {

arrayfig=[SKShapeNode shapeNodeWithRect:CGRectMake(-90/2, -90/2, 100, 80)];
arrayfig.position=CGPointMake(500, 700);
arrayfig.strokeColor = [ SKColor whiteColor];
arrayfig.fillColor = [SKColor blackColor];
arrayfig.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:arrayfig.frame.size];
arrayfig.physicsBody.friction = 1;
[self addChild:arrayfig];
}

///
Знаю, что СТАТИК использовать - не есть хорошо, но пока не соображу как пихнуть туда NSArray.
И еще нужно стоп воткнуть какой нибуь, чтобы приложение не работало бесконечно.
#523 #719295
>>719258

парни, короче чуток разобрался

вот говнокод :

static SKShapeNode* arrayfig[100];
static int i=0;

{
....

[NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(testtimer) userInfo:nil repeats:YES];

}

-(void)testtimer

{

//for (int i=0; i<10; i++) {

arrayfig=[SKShapeNode shapeNodeWithRect:CGRectMake(-90/2, -90/2, 100, 80)];
arrayfig.position=CGPointMake(500, 700);
arrayfig.strokeColor = [ SKColor whiteColor];
arrayfig.fillColor = [SKColor blackColor];
arrayfig.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:arrayfig.frame.size];
arrayfig.physicsBody.friction = 1;
[self addChild:arrayfig];
}

///
Знаю, что СТАТИК использовать - не есть хорошо, но пока не соображу как пихнуть туда NSArray.
И еще нужно стоп воткнуть какой нибуь, чтобы приложение не работало бесконечно.
>>719308
#524 #719308
>>719295
и подскажите один момент важный.
я убрал счетчик.
arrayfig больше не массив.
теперь в voidtester каждый раз снова создается объект и как бэ там и остается -
как этот механизм работает, господа?
#525 #719312
Что-то нихуя я не могу этот автолейаут понять.

Вот сделал я два лейбла, оба editable, layout стоит wraps. Указал обоим constraint'ы до верхнего элемета (супервью и первого лейбла, соответственно), отступы слева и справа, а также ширину. На end editing экшн повесил метод, вызывающий [label sizeToFit]. Он берёт и увеличивает их ширину... Разве не должен был перенести на вторую строку и сдвинуть нижний лейбл? Нет же констрейнта высоты, нижний лейбл по вертикали ограничен только в верхней части, а вот ширину я у них как раз ограничил.
Изменение размера через setFrameSize тоже ничего не даёт - размер изменяется и всё, никто никуда не двигается.

Мне нужно сделать так, чтобы я изменил (в коде, динамически) размер одного элемета, и все остальные, ссылающиеся на него, автоматически и магически подвинулись согласно указанным констрейнтам. Autolayout вообще это позволяет или мне проще вручную делать?
291 Кб, 1920x1080
Need for Help : Most Wanted Святозар Аркадьевич #526 #719683
Гайз, тот же парень.

Только вопрос чуть конкретнее теперь :

есть сцена - sprite kit - .
я роняю в сцене фигуру.
пытаюсь как то мониторить процесс падения по координатам или по свойствам, но походу как то иначе работает...

поделитесь мыслями на этот счет, даже вне контекста с SPRITE KIT
#527 #719684
>>719683

>фикс : пытаюсь как то мониторить процесс падения по координатам или по свойствам, но походу механизм как то иначе работает...

>>719822
#528 #719822
>>719683
>>719684
up, гайз
#529 #719833
#530 #720070
>>720488
#531 #720488
>>720070
Ты же не думаешь, что:
а) за тебя будут придумывать архитектуру
б) кто-то много понял из той сумбурной ахинеи, которую ты напостил?
loader - #532 #720558
Тупой вопрос :
что такое лоадер?
>>720574
#533 #720574
>>720558
Тупой ответ: это загрузчик.
>>720601
#534 #720601
>>720574
а в контексте приложения диктофон, например ?
отправляет записанное куда-то?
>>720642
#535 #720642
>>720601
вряд ли
>>720699
#536 #720648
юзать фаербейз с реалмом норм тема? Или что юзать для хранения данных на телефоне
#537 #720699
>>720642
тогда есть другой вариант?
просто предполагаю, что какая-то очевидность.
>>720761
#538 #720761
>>720699
Возможно загрузка твоих записей из облака.
#539 #721157
Аноны, можно ли вручную редактировать coredata в xcode? Чет не вижу нужной кнопки, да и в уроках, которые я смотрю, чет нет таких функций. Так же зачем оно тогда надо, если я могу все хранить в переменных?
>>721193
#540 #721193
>>721157
В общем буду использовать plist лучше.
#541 #721426
за ксамарин поясните, почему его юзают?
>>721565
#542 #721565
>>721426
Потому что знают только сисярп и/или хотят наклепать хренотенек сразу на все 3 платформы.
1685 Кб, 1944x2592
#543 #721677
Гайз, проект удалил, а вот в симуляторе остался мусор.
Не то чтобы у меня от этого кровь, но если много наберется будет резать глаза. Подскажите, а то гугл чет молчит.
P.s юзаю vmvare, за мак плохо знаю.
>>721687>>721688
#544 #721687
>>721677
Прямо как на телефоне возьми и удали.
sage #545 #721688
>>721677
Пиздос, у тебя айфона что-ли нет долгий клик по любой иконке
>>722056
29 Кб, 1318x147
#546 #721840
Аноны, помогите. Пытаюсь занести инфу с плиста в массив, а оно не хочет, он пустой, 0 элементов.
#547 #722056
>>721688
Андроидодаун)

Но в любом случае спасибо - нашел на верху в панели строку - симулятор
240 Кб, 810x2709
#549 #738820
>>630631 (OP)
Ананы, а сколько стоит размещение приложения в App Store? Чет не найду нихуя.
Тред утонул или удален.
Это копия, сохраненная 10 мая 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски