Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Що краще вивчати — ObjC чи Swift?

Усі статті, обговорення, новини про Mobile — в одному місці. Підписуйтеся на телеграм-канал!

Зараз вивчаю Swift, але дивлячись на вакансії бачу, що він не так потрібен, як ObjC. От і думаю — а чи правильну мову я зараз вивчаю (Swift)?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Новачкам я рекомендую вчити спочатку Objective-C по відео-курсі Скутаренка, тому що він дуже гарно розжував і дав багато практичних завдань до кожного відео-уроку. Плюс старий код буде компілюватися. Ну а після проходження того відео-курсу можна потім за тиждень-два перестрибнути на Swift, тому що вчиш тільки мову, а не загалом розробку під iOS (її вже вчив з Objective-C).
Якщо є справді хороші/зручні/ефективні матеріали для вивчення розробки під iOS на Swift то можна і навпаки, проте, думаю, так буде складніше.

Я особисто навчаюсь по матеріалу на YouTube каналах типу Sean Allan, Let’s Build That App, Brian Advent, Swift Guy, попередньо прочитавши книгу від Apple та пройшовши курс від Стенфорду (для розуміння бази).

Якщо хтось знає про ці канали — як гадаєте — це хороші джерела для навчання? (стосовно книги та курсу від Стенформу — не запитую, оскільки твердо вважаю їх Must Have :) )

Новые проекты постепенно начинают писать на Swift, то-есть найти проект сможете если постараетесь. Базовое понимание работы с Objective-C тоже не помешает.

У вас якесь дуже дивне питання. Для чого вчите? Який у вас план, які часові проміжки ви собі поставили?

Хочу заробляти цим на життя, а не тільки самому для себе сидіти щось розбирати та писати :)
План — до квітня вийти на рівень, достатній для виконання першого пункту та реалізувати його

Питання як раз змотивоване другим пунктом, оскільки я бачу, що те, що я вчу — може не вдатись використати для працевлаштування.

Вибачте, але я вас засмучу. У вас план мегаоптимістичний, бо при нинішній конкуренції потрібно 1+ років досвіду профільної розробки. Звісно, якщо вакансія горить, або це «молода перспективна» фірма, вас візьмуть і з меншим досвідом. Також більшість роботодавців шукають людину, що добре володіє обома мовами, оскільки старі проекти написані на obj-c, а деякі «натхненні Apple» замовники вимагають проекти виключно на swift. Плюс, як вам вже писали, більшість сторонніх бібліотек написані на obj-c. То ж добре знати і те, й інше, ти паче, що самі мови вчаться за декілька тижнів. У вас більше часу займе вивчення IDE, SDK та Аpple guidelines.

Дозвольте поцікавитись — це який рівень знань досягається за період вивчення мови в декілька тижнів?

Я ось вже кілька місяців практикуюсь в Swift, з TableView, CollectionView, GCD, анімаціями, ось недавно розібрав відмінність Delegation & Protocols від Notifications & Observers та як вони реалізуються (звичайно-ж з реалізацією на своїх малих тестових прикладах) і тому подібним. В основному з UIKit. І бачу що вчити там ще є чимало чого.
Можливо я забагато вчу для початку, чи не правильно, чи надто глибоко копаю...

Підкажіть, будь-ласка :)

Дозвольте поцікавитись — це який рівень знань досягається за період вивчення мови в декілька тижнів?

Це може залежити від того, яка то по рахунку вивчена мова.

Delegation & Protocols від Notifications & Observers

Це швидше звучить як патерн а не фіча мови. В Obj-C ти напевно що знайдеш щось дуже до того подібне (воно ж на тих самих айфонах працює і робить то саме, що і ваш Свіфт) тільки реалізованне... на Obj-C

Так, вірно, це не фіча мови! :)
Вірно, але наприклад в ObjC, для задіювання Notifications & Observers може бути потрібно більше, ніж в Swift (явно вказувати ідентифікатор для Notification, чи додатково, крім ідентифікатора — ще щось), а це вже до фреймворків відноситься.
Особисто я поєдную поняття мови, та фреймворків/бібліотек написаних для неї, і підозрюю — в цьому помиляюсь :)
Виправте, будь-ласка, якщо помиляюсь :)

У перерахованому фіча Сфітіка є.

Ніякий рівень не досягається. Мову програмування або знають, або вчать.

А вам спочатку треба розібратись, що все, що ви перелічили, не має жодного відношення до swift.

До самої мови — ні, це я розумію.
Річ про те, що крім знання мови — потрібно розуміти ті-ж патерни проектування, базові фреймфорки (UIKit, CoreData, AVFoundations і т.п.), от їх і вчу зараз. На співбесіді, мене-ж не будуть питати тільки про опціонали, кортежі і т.п.

Я щось роблю не правильно, вивчаючи це?
Тому що сам синтаксис, як мені здається, я вже освоїв давно :)

Якщо розумієте, то чому для вас виявилось проблемою вибір мови?

В даному сенсі — закладував як знання мови, так і знання фреймфорків, котрі необхідно знати, щоб ефективно розробляти додатки. Той-же UIKit у ObjC — напевне-ж, що буде написаний, або-ж спроектований інакше, аніж в Swift, що також потрібно буде освоювати.

Питання, напевне що, не зрозуміло поставив

Той-же UIKit у ObjC — напевне-ж, що буде написаний, або-ж спроектований інакше, аніж в Swift,

Я не розумію про що ви пишете.

Нажаль, не знаю як краще донести свою думку :(

Наприклад UITableView або-ж UICollectionView (чи їх аналоги) — мають такі-ж самі properties та function як в Swift так і в ObjC?

Напевне що різниця є.
Ось про вивчення цих розбіжностей — я переймаюсь.

Тобто, ви не знаєете чи є розбіжності, але вже впевнені, що вони є?

«Правильно поставлене питання — половина відповіді» :)
Я дійсно не знаю.

Останнє питання: А чи є різниця в реалізації фреймворків? І якщо так — чи велика вона?

Дякую Вам! Зараз зрозумів, що сам себе налаштував, що ObjC страшний і його вчити потрібно ще довше, аніж Swift.

Там різниця лише у синтаксисі і то це пішло з 3 чи 4 версії swift.

Набагато більша різниця у самому стилі написання коду, бо swift type-safe.

О як!
Якщо так, то гадаю ObjC це не той звір, котрого мені варто остерігатись :)

Вельми Дякую Вам, Олександр!
Не часто на DOU зустрінеш людей, котрі таки не забьють на потребуючих в допозі :)

Наприклад UITableView або-ж UICollectionView (чи їх аналоги) — мають такі-ж самі properties та function як в Swift так і в ObjC?

А яке ти бачиш до того підгрунтя? Чому вони мають бути різними? Може вони ще й виглядають і ведуть себе по іншому?

для

2 роки практичного досвіду + 1 рік навчання перед роботою.

ти задаєш дуже дивні питання.

В моєму розумінні — мова, як інструмент, накладає свої вимоги до реалізації.

2 роки програмування в 1С.
Тут, навіть на одній мові, в різних конфігураціях одні і ті-ж методи можіть відрізнятись по реалізації.

Дивні, не спорю. Очікував, що дві різні мови, будуть реалізовувати один і той самий функціонал по різному.

Дивні, не спорю. Очікував, що дві різні мови, будуть реалізовувати один і той самий функціонал по різному.

Для мене дивно було би очіквати, що хтось буде взагалі двічі реалізовувати один і той самий функціонал...

Для мене дивно було би очіквати, що хтось буде взагалі двічі реалізовувати один і той самий функціонал...

А що тут може бути дивного, коли людина не володіє елементарними поняттями та принципами ООП? Apple академічно дотримується паттернів ООП та MVC. Якщо чіко їх не розуміти, то получається як тут — «шапкозакідательство» — щас термінами як начну сипать, аж стіни захитаються. А в реалі горох з капустою — все зі всім напутано і перепутано.

Дозвольте поцікавитись — звідки ваша впевненість в моєму не знанні принципів ООП та MVC?

То більш меньш випливає з питання вгорі...

Ну все ж таки то початківець, який судячи з усього навчається самостійно, а в минулому взагалі бухгалтер.

До людей треба ставитись помягше а на вопроси смотрєть поширше ©

Початківець.
Навчаюсь сам.
2.5 роки бухгалтером (тому і на 1С перейшов).

Три з трьох :)

Будеш зі всіма мягкий станіш пластіліном ;)

Ввічливість з мягкістю не путайте.

Я не розумію про що ви пишете.

Раз на Обж, то архітектура інша :)

Swift — сучасна мова. Вона дуже проста, передбачувана та потужна. «Вивчати» її можна два-три тижні. Якщо володієте бодай одною-двома іншими. Я цілком серйозно. За два тиждні вечорів в мене вже була agent-програма на свіфті з коммунікацією з сервером і нескладним юаєм при тому, що то була взагалі найперша програма під макось, яку я написав. Але вже зі сторі борд почалися витрати часу та труднощі.
Все інше, усі 99% — це бібліотеки та ґайдлайни, як Вам і кажуть вище. Тому раджу не зациклюватися, а йти далі. Swift вивчиться сам собою.

Учить надо программирование а не языки программирования

2 роки практичного досвіду + 1 рік навчання перед роботою.
Скажете, що мало? Скажете що мову знати не потрібно?

Если вы задаете подобные вопросы на форуме то ваш опыт яйца выеденного не стоит. Вы даже не понимаете зачем вы учите то что учите (то что перечисленные вами языки нафиг никому не нужны отдельный вопрос).
У вменяемого программиста не стоит вопрос какой язык учить а стоит вопрос как я могу эфективно реализовать тот или иной проект или решить задачу. Остальное технические детали. В частности для того кто умеет програмировать изучение нового языка — это пара часов чтения мануалов чтобы узнать особенности синтаксиса — остальное уже на практике по ходу реализации проекта.

В частности для того кто умеет програмировать изучение нового языка — это пара часов чтения мануалов чтобы узнать особенности синтаксиса

ой не всегда и не везде.

пофіг шо ти там вивчаєш, вивчи хоч щось одне на нормальному рівні.

На нормальному — це якому?
В деталях можете, будь-ласка, описати?

Коментар порушує правила спільноти і видалений модераторами.

И то и другое, иногда попадаются проекты, написанные на Obj-C, что чаще всего. У меня вообще недавно был проект на допиливание на Obj-C без ARC. Бывает — пишешь на Swift-е, и вдруг тебе нужна либа Open Source, которая написанная на Obj-C, через Bridge юзаешь её в Swift, и вот иногда приходится её патчить, и наоборот.

Я планував вивчати ObjC, як мінімум — для розширення кругозору, але пізніше, коли зможу в Swift.
Гадаєте — варто вже на старті опановувати і те і інше, щоб якісно розумітись в тому, що розробляєш?

Я б порекомендував вчити поперше Obj-C, а потім вже Swift, це як на мою думку

Багато вакансій по ObjC вочевидь на підтримку існуючого софта. Для розробки нового софту, думаю, для роботодавця не велика різниця на чому писати. Головне розуміння платформи, оптимізація і т.і. Якщо на співбесіді ви зможете обґрунтовано переконати роботодавця, що Swift краще/швидше/простіше в підтримці — адекватні роботодавці підтримають.

Саме з такими думками починав вивчення Swift-у.
Нова мова, подальша розробка буде вестись на ньому і т.п

ну вакансий по ObjС больше скорее всего потому, что на нем больше «яблочного» софта написано, чем на Swift (хотя я не яблочник и могу ошибаться). Со временем, думаю ситуация изменится и вакансий по Swift станет больше.

а чи правильну мову я зараз вивчаю

как вариант можно учить С# и Xamarin)

Коментар порушує правила спільноти і видалений модераторами.

Вчити джаву вже пропонували?

Та вчи і то і то, скільки там того Swift’a i ObjC? Там же, напевно, головне це знання можливостей платформи та СДК, а вони ж однакові і для того і для того. Вчи, що більше подобається в першу чергу, інше — підівчай по можливості і по потребі.

Поправте профессіонали яблочники якщо я не правий.

Джаву вчив десь зо пів року.
Подобається Свіфт, от і вчу його :)

Ну от його і вчи, коли опинуєш платформу на певному рівні — спробуй пописати щось невелике на ObjC.

Андроід не так цікавий, в силу суб’єктивних причин :)
Хіба що як додатковий скілл.

котлин вроде и под iOS/MacOS может (Kotlin Native github.com/JetBrains/kotlin-native и т.п., билд Kotlin Native для макоси точно есть — github.com/...​n-native-macos-0.4.tar.gz )

Дякую за лінк!!
Виглядає цікаво :)

Підписатись на коментарі