Всем привет!)
Хотелось бы сказать, что это Swift :)
Начинал я свой путь с “Питона”, как и писал в первой статье. Но через определенный промежуток времени захотелось что-то посерьезнее. И тут в мою жизнь вошел Swift.
Именно тогда я понял для себя смысл двух выражений : “что невозможно знать язык” и “язык - это всего лишь инструмент”.
Я скачал себе книги по Swift-у и начал читать. Одна из книг называлась “Swift apprentice”. Она была целиком посвящена самому языку. В то время как книги другой серии были посвящены SwiftUI и UIKit. Было интересно, но голове было очень тяжело осознавать прочитанное. В итоге я прочитал где-то половину, выборочно прояснил для себя непонятные моменты и к ней не возвращался.
Через какое то время я нашел курс от Angela Yu и начал его проходить. Честно скажу, было сложно. Некоторые моменты я до сих пор не понимаю, вроде того как в UIKIt выстраивать Constraints, хотя это основа. Я прошел его большую часть и там была одна из частей по SwiftUI. Меня зацепила верстка кодом, декларативный стиль, возможность в моменте видеть свой результат.
После нескольких месяцев занятий на UIKit я без каких либо проблем решил поменять фреймворк на SwiftUI, потому что для меня написание приложений на Ките было пыткой (КАРТИНКА ВЫШЕ). А SwiftUI с его парадигмой и комфортом был глотком воздуха.
Тем кто только начинает могу посоветовать курсы “100 days of SwiftUI” от “Paul Hudson”, его YouTube канал, еще у Swiftful Thinking достаточно хорошие и информативные видео. Из книг - “SwiftUI Apprentice” - но лучше ее читать до знакомства с самим фреймворком, потому что если уже есть какой то уровень то может показаться скучной вначале. Но что то новое всегда можно узнать.
Но.....
В какой то момент я понял, что Apple серьезно ограничивает разработчиков. В общем, как и в своей продукции. Они делают все максимально круто и комфортно, но пользователь или разработчик всегда ведут игру по их правилам.
- Нельзя без платной подписки собрать .ipa файл из своего проекта.
- Нельзя встраивать свою монетизацию без оплаты их комиссии
- Нельзя в обход магазина распространять свои проекты
- Загружаешь в магазин - опять же нужно следовать правилам по лицензированию контента.
- Swift - проприетарный язык, который кроме как разработки под Apple нигде не применить
P.S. Чтобы вы не подумали, я фанат Apple. Мне нравится их продукция. Но блин, столько ограничений. Поэтому если вы думаете войти сюда - то будьте готовы к обратной стороне "медали". И эти ограничения это плата за комфорт, удобные API для проектов и прекрасное IDE.
Теперь о языке Rust, который меня увлек максимально сильно за последнее время.
Все началось с того, что была пара проектов, которые я хотел реализовать у себя на работе. Мы делали базу под хранилище заказов с сортировкой и случилось это.... Не у всех были устройства от Apple. Это сломало все.
Мне нужно было придумать способ, как лучше всего реализовать идею и чтобы всем было удобно пользоваться. Идея и бизнес логика были реализованы в нативном приложении и все работало исправно. Поэтому я решил попробовать перенести проект на Rust и скомпилировать под Windows так как компы у нас на Windows. Пришлось потратить немало времени перед этим, но дело было сделано. Да - без красивой графической оболочки, без анимаций и всех тех прелестей, которые дает нам фреймворк. Только потом я узнал о фреймворке для него под названием "Slint". Зато работало везде и без дополнительных надстроек над системой. Это меня больше всего и зацепило - возможность компилировать код под любую систему - будь то Windows, Linux или OS X.
Безусловно, и питоновский код можно спокойно так использовать. Но нужно обязательно ставить интерпретатор. А тут скомпилировал, закинул на флешку - используешь на любом железе, без каких-либо дополнительных надстроек.
И еще меня очень удивил один проект на GitHub, где несколько чуваков собрали себе с 0 устройство на плате с экраном и возможностью изменения мощности. Я сам люблю покурить "электроночки" и меня это не могло пройти стороной :) Они под голую плату написали свою ОС и поставили туда. Меня это очень впечатлило. Фото примера ниже
Я был шокирован, что такое возможно.
Ведь давайте по честному, мы, как разработчики, очень часто пользуемся готовыми API и шаблонами. И да, это очень упрощает нам жизнь и сокращает время.
НО
Мы всегда пользуемся готовым. И в уже готовом пространстве, с ним остается только взаимодействовать. А в их проекте меня впечатлило то, что они спаяли устройство сами. Сами написали прошивку на голую плату. Когда я подумал, что смогу сделать что то подобное - не описать те чувства.
Поэтому в планах научиться паять и писать код под такой низкий уровень. Если не получится - хотя бы попробовать. И если попробую 100 раз - то на 101 точно получится.
Было много мыслей - благодарен, что прочитали до конца :)