iOS Такой 🍏
3.39K subscribers
424 photos
10 videos
2 files
303 links
IT | Подкасты | Apple | iOS Материалы | Swift

Реклама: @new_repository

Тёплый чат: https://t.me/+tzWmsOMTPpFjMzAy

Бусти: boosty.to/dimov_ios
Download Telegram
💰 Обзор зарплат: сколько сейчас зарабатывают айтишники

Разберемся, что происходит с зарплатами в айти в последние годы и сколько зарабатывают IT-специалисты сейчас. Ориентируясь на данные Хабр Карьеры, то за ≈1,5 года зарплата в IT выросла примерно на 11,94%.

#digest #рынок
👍4👎3🔥21😱1
🌍 ЭФФЕКТИВНОЕ ИЗУЧЕНИЕ ИНОСТРАННЫХ ЯЗЫКОВ: ГОСТЬ, СОФЬЯ, ИНТЕРЕСЫ И СЕКРЕТЫ 🗣️

Привет, друзья! У нас сегодня на канале особенный выпуск, посвященный эффективному изучению иностранных языков. И у нас есть замечательная гостья - Софья, репетитор по английскому языку, которая не только преподает его, но и увлечена миром социальных медиа и продвижением!

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

Но это еще не все! Соня также увлекается областью социальных медиа и продвижением. Она понимает, как важно использовать современные инструменты для расширения своих знаний и навыков. Если вам интересна эта область или вы хотите узнать больше о том, как использовать социальные медиа для продвижения своего бизнеса или личного бренда, то Соня с радостью поделится своими идеями и опытом!

Выпуск получился достаточно полезным, информативным и интересным. Приятного просмотра😊

#digest #иностранныеязыки
👍12🔥74👎1
📣 Приглашаем желающих выступить с докладом на любую техническую тему в iOS! 📱

Мы ищем интересных разработчиков iOS, которые готовы поделиться своими знаниями и опытом с сообществом. Если у вас есть интересная техническая тема, о которой вы хотели бы рассказать, мы предлагаем вам возможность выступить у нас.

Что нужно сделать:
1. Определите тему вашего доклада. Это может быть что угодно - от новых функций в iOS до советов по производительности или даже внутреннему устройству операционной системы.
2. Укажите, сколько лет вы занимаетесь разработкой iOS. Нам интересно узнать, какой опыт вы имеете и какие проекты вы реализовали.
3. Укажите желаемую дату вашего выступления. Мы готовы обсудить возможные даты и подстроиться под ваши предпочтения.

Мы хотим создать вдохновляющую и образовательную атмосферу, поэтому все темы будут рассматриваться.
Если вы готовы поделиться своими знаниями и стать спикером, пожалуйста, свяжитесь с нами @new_repository с указанием темы вашего доклада, вашего опыта в разработке iOS и желаемой даты выступления.

Мы ждем ваших предложений и с нетерпением ожидаем ваших интересных и познавательных докладов! 🎉🎤

#digest #доклад #развитие
👍9👎43🔥2
Коллекция extensions для Swift

SwifterSwift - это коллекция из более 500 встроенных расширений Swift с удобными методами, синтаксическим сахаром и улучшениями производительности для широкого спектра примитивных типов данных, классов UIKit и Cocoa – более 500 в 1 – для iOS, macOS, tvOS, watchOS и Linux.

Этот репозиторий поможет вам улучшить производительность и упростить код. Посмотрите Examples.playground для более наглядного примера!

#ios #swift
16👍6🥴3🔥2
SwiftUI для большого B2C-продукта

В конце 2022 было запущено приложение Яндекс Путешествий на SwiftUI. Это было очень интересно, сложно и немножко больно.

Большие продукты очень аккуратно пробуют новые технологии, ведь для старых написаны разные хэлперы, либы, а для SwiftUI такого мало, поэтому сколько-то шишек набить все-таки пришлось. О них и будет этот доклад.

Слушатели смогут решить для себя, стоит ли запускать приложение с нуля полностью на относительно новом SwiftUI или стоит подождать, пока технология стабилизируется, узнать, какие боли могут возникнуть при проектировании нетривиального приложения на новом стеке, и как их решать.

#digest #swiftui
👍11🔥6👎31
Как автоматизировать обнаружение утечки памяти в вашем Swift-коде с помощью XCTest

Вы можете обнаружить утечки памяти с помощью инструментов или средств отладки графов памяти, но это может занять много времени. Лучше действовать проактивно, а не реактивно. Существует способ использовать XCTests для автоматического обнаружения утечек памяти при выполнении тестов.

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

#digest #XCTests
👍12🔥32💩1
Как стать идеальным кандидатом на должность IOS разработчика

Всем привет! В эти выходные мы подготовили для вас особенный выпуск, посвященный теме "Как стать идеальным кандидатом на собеседовании"

В гостях у нас был Владимир iOS разработчик. Он с радостью поделился с нами своими знаниями, опытом и документацией, чтобы помочь вам стать идеальным кандидатом📚

В этом выпуске Вы узнаете о всех тонкостях и секретах успешного прохождения собеседования. Вова расскажет о важности подготовки, правильном поведении и ответах на типичные вопросы. Это обязательный просмотр для всех, кто стремится достичь успеха на собеседованиях!

Мы уверены, что Вы найдете этот выпуск полезным и интересным! Приятного просмотра!

Делимся полезными ресурсами с доклада

1⃣ Канал с разбором вопросов от Владимира:
https://www.youtube.com/channel/UC7RS_sOg9XMX3dtyoAxFpsw

2⃣ Вопросы с собеседований:
https://docs.google.com/document/d/1umwB4nR5y-WLteylhRYC45Vg6fCj7nN30FYoCZvLzK4/edit?usp=sharing

3⃣ 350 листов теории:
https://docs.google.com/document/d/1ssZDXY6m9rhBL3G7pMOusdnLRRf7c3zLUc8jf7l2NyU/edit?usp=sharing

4⃣ Статья "память от 0 до 1":
https://habr.com/ru/companies/hh/articles/546856/

5⃣ Статья "Live coding интервью для iOS разработчиков":
https://habr.com/ru/articles/718334
🔥33👍155💩21
Всем привет 👋

Совсем скоро у нас выйдут еще два ролика, а именно:

1️⃣ "Work life balance" с ребятами из Яндекс Го. Мы поговорим о том, как найти баланс между работой и личной жизнью, а также поделимся полезными советами и рекомендациями от профессионалов.

2️⃣ "Верстка кодом для начинающих UIKit". В этом выпуске мы расскажем о том, как начинающим разработчикам освоить верстку интерфейса с помощью UIKit. Вы узнаете о лучших практиках и секретах эффективной и качественной верстки. -Лайфкодинг.

Мы будем очень рады, если вы подпишетесь на наш ютуб-канал и поддержите нас!
Спасибо, что вы с нами!
🙌

#ios #разработка
👍19🔥7👌41🤮1
🔊 Новый подкаст на канале iOS: "Work Life Balance в IT и как не сойти с ума"! 🎧

В новом подкасте мы обсудили множество вопросов, связанных с Work Life Balance. Ребята из Yandex Go поделились своими секретами и советами о том, как справляться с высокой нагрузкой, не выгорать и сохранять эмоциональное равновесие.

Мы поговорили о том, как организовать свое рабочее время, чтобы не забывать о личных делах и отдыхе. Гости поделились своими методами планирования и приоритизации задач, чтобы быть продуктивными и в то же время находить время для себя.

Всем приятного просмотра.

#digest #подкаст
👍1311🤮1🤝1
Верстка кодом в iOS. Лайфкодинг

Верстка кодом может быть сложной для начинающих разработчиков. Необходимо иметь хорошее понимание основных концепций UIKit. Кроме того, необходимо уметь использовать Auto Layout и констрейнты для правильного расположения элементов на экране.

В целом, верстка кодом UIKit является мощным инструментом для создания качественного и гибкого пользовательского интерфейса на iOS. Этот подход позволяет разработчикам иметь полный контроль над интерфейсом и повышает эффективность разработки.

На канале iOS Такой вышло полезное видео по верстке кодом в UIKit. Если вы начинающий разработчик и хотите научиться создавать интерфейсы с помощью кода, то это видео стоит посмотреть.
В в данном видео автор подробно объясняет основные принципы верстки кодом и демонстрирует живой пример, а так же отвечает на самые задаваемые вопросы.

Не забудьте подписаться на канал, чтобы не пропустить другие интересные видео и материалы по iOS-разработке. Удачи вам в изучении и развитии!

#digest #доклад #верстка
👍21🔥51👎1💅1
Что такое замыкания и как их использовать?

Сегодня хотел бы поделиться с вами информацией о замыканиях (closures). И подготовили видео доклад на нашем ютуб канале.

🔎 Что такое замыкания?

Замыкание - это блок кода, который можно передать и использовать в качестве аргумента или возвращаемого значения в функциях. Оно может захватывать и хранить ссылки на переменные и константы из контекста, в котором оно было создано. Замыкания в Swift могут быть написаны в сжатой и лаконичной форме, что делает код более читабельным и понятным.

🎯 Зачем нужны замыкания?

Замыкания в Swift предоставляют множество возможностей и преимуществ:

1️⃣ Передача кода в качестве аргументов: замыкания позволяют передавать и использовать куски кода внутри других функций. Это особенно полезно при работе с асинхронными операциями или при необходимости выполнить определенные действия после завершения задачи.

2️⃣ Хранение кода в переменных: замыкания можно присваивать переменным или константам и использовать их в любом месте кода. Это позволяет создавать гибкие и масштабируемые архитектуры приложений.

3️⃣ Захват значений из окружения: замыкания могут захватывать и использовать значения из внешнего контекста. Это позволяет создавать более гибкие и мощные функции, которые могут адаптироваться к различным сценариям использования.

💡 Если вы хотите узнать больше о замыканиях в Swift, рекомендую посмотреть технический доклад на нашем канале iOS. Он содержит объяснение концепции замыканий и примеры их использования.

#iOS #digest #замыкания
🔥20👍84🤮1
500 подписчиков💥

Спасибо всем, я очень рад и счастлив. Постараюсь выпускать качественный и годный контент чаще.

Ближайшие выпуски:
1️⃣ Важность проведение one to one в компании.

2️⃣ Переход от классического UIKit+VIPER на SwiftUI по шагам.

3️⃣ Мок-собеседование на должность iOS разработчика.
🎉355🔥5👍3🥰1👏1💩1
MVVM на практике UIKit

Когда iOS впервые появилась, Apple предложила использовать MVC (Model-View-Controller) в качестве шаблона проектирования. Они показали это во всех своих примерах, и все первые разработчики были счастливы использовать его, потому что он прекрасно разделял проблемы между бизнес-логикой и пользовательским интерфейсом. По мере того, как приложения становились больше и сложнее, возникла новая проблема, получившая соответствующее название Massive View Controllers (MVC).

Поскольку вся бизнес-логика была добавлена в ViewController, со временем они обычно становились слишком большими и сложными. Чтобы избежать проблем с MVC, в мире iOS был введен новый шаблон проектирования - шаблон Model-View-ViewModel (MVVM).

Как выглядит MVVM. У вас есть стандартный ViewController + View (в storyboard, XIB или Code), который действует как представление MVVM (в дальнейшем text - View будет ссылаться на представление MVVM). Представление имеет ссылку на ViewModel, где находится наша бизнес-логика. Важно заметить, что ViewModel ничего не знает о представлении и никогда не имеет ссылки на представление. ViewModel содержит ссылку на модель.

Одна из основных проблем с MVVM заключается в том, как обновить View с помощью ViewModel, когда ViewModel не имеет никаких ссылок и даже ничего не знает о View.

Смотреть видео про архитектурный паттрен MVVM

#swift #mvvm
👍10🔥75🤮2
А У ВАС ЕСТЬ ONE TO ONE?

В мире информационных технологий, где командная работа становится все более распространенной практикой, не следует забывать о важности проведения индивидуальных встреч "one to one". Это поистине магическое время, когда руководитель и сотрудник имеют возможность погрузиться в мир личных достижений, амбиций и целей.

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

Но важность one to one не ограничивается только гармонией в команде. Это также отличная возможность для руководителя понять, что мотивирует каждого сотрудника, какие цели он преследует и как можно помочь ему достичь этих целей. Ведь только истинно мотивированный сотрудник способен добиться высоких результатов.

iOS Такой пригласил гостя - Анатолия Кнутарева, который подготовил доклад и рассказал о важности проведение one to one в компаниях.

#digest #доклад
👍8🔥73💩2
Гибкость интерфейса с Backend-Driven UI

Backend‑Driven UI (или Server‑Driven UI) — это концепция в разработке приложений с интерфейсом, при котором бэкенд управляет как данными приложения, так и его внешним видом. Например, для фронтенд‑приложения BDUI будет управлять вёрсткой.

В этой статье на практических примерах разбираются преимущества переноса логики интерфейса приложения на backend.

Вы узнаете, как упростить тестирование, оптимизировать разработку и быстро вносить изменения в дизайн.

#idgest
👍82🔥2🤮2
Привет всем!

Хочу поделиться с вами некоторыми мыслями о нашем контенте и предложить вам возможность поддержать наш канал на бусти. Если вам нравятся наши видео, вы можете сделать свой вклад, который будет не только огромной поддержкой для меня, но и для всего канала!
☕️199 рублей - цена чашки кофе, но большой вклад в развитие контента!

Я очень стараюсь выпускать новые ролики и хочу поделиться с вами планами на будущее:
🔴Скоро выходит выпуск свой игры, над которой мы усердно работаем.
🔴Расскажем о переходе с VIPER UIKit на SwiftUI подробно
🔴Возвращаем рубрику публичных моковых собеседований! Следующий выпуск будет очень интересным🔫

Для подписчиков бусти создадим специальный локальный чат, помогать друг другу в развитии, делиться приватной полезной информацией! Но главное - это мок собеседования внутри этого чата и ваша возможность принять участие в них!

Огромное спасибо всем за вашу поддержку и интерес к нашему контенту. Вы делаете нас лучше! Люблю!🎯

#digest #поддержка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🎉4🏆3💩2🤮1🤡1
Swift Runtime в деталях

Это написанная на C++ библиотека, которая занимается обслуживанием встроенных в сам язык Swift функций. В частности, тут можно выделить как минимум две больших категории: работа с памятью (ARC), и работа с типами данных.

Статья про Swift Runtime - что это, зачем он нужен, где появляется и на чем основан принцип его работы, немного про особенности его реализации и про этапы компиляции.

#digest
🔥14👍84💩2😡1
Полезные материалы

Много ссылок об iOS и Swift — эти материалы очень полезны в решении многих вопросов. Сохраняй, пользуйся, делись 👇

Xcode
➡️ Подробнее про сам Xcode
➡️ Подробнее про Interface Builder

Структура приложения
➡️ Жизненный цикл iOS-приложения
➡️ Туториал по iOS Storyboard
➡️ UIApplicationDelegate
➡️ UIScene

Работа с Git
➡️ Документация по Git
➡️ Вводная по работе с Git

UI/UX
➡️ Документация Apple UIViewController
➡️ Хабр: жизненный цикл UIViewController
➡️ Документация Apple UINavigationController
➡️ Документация Apple UITabBarController
➡️ VC: основы мобильной навигации
➡️ UX/UI Design Glossary. Navigation Elements

Архитектура
➡️ Документация по MVC
➡️ Хабр: про MVC
➡️ Medium: отличия MVP от MVC
➡️ Хабр: различные архитектуры

UICollectionView
➡️ Документация от Apple
➡️ Туториал
➡️ CollectionView with NSHipster

Тестирование
➡️ Практический видео материал
➡️ Написание своего первого теста

UITableView
➡️ Документация
➡️ Подробный разбор на Medium
➡️ Туториал для начинающих

Layout
➡️ Статья про Update Cycle и все его методы
➡️ Туториал про CALayer
➡️ Документация от Apple по layoutSubviews()
➡️ Подробный гайд AutoLayout от Apple
➡️ Хабр: концепция, строение, применение AutoLayout
➡️ От Apple про адаптивный дизайн
➡️ Хабр: математические основы AutoLayout

Работа с сетью
➡️ Официальная документация URLSession от Apple
➡️ Networking in iOS от Swift by Sundell
➡️ Хабр: взаимодействие с сетью в iOS
➡️ Документация URLSession + Combine
➡️ Medium: REST простым языком

Decoding
➡️ Туториал по декодингу данных от Apple
➡️ Гайд по Codable
➡️ Хабр: парсинг данных в iOS

Temporary
➡️ Официальная документация URLCache от Apple
➡️ Официальная документация NSCache от Apple
➡️ Cache with NSCache from Swift by Sundell

Databases
➡️ Официальная документация Core Data от Apple
➡️ Core Data + Swift для самых маленьких
➡️ Medium: синхронизация API с Core Data

Key-Value
➡️ Storing Keys in the Keychain от Apple
➡️ Хабр: Keychain в API
➡️ Официальная документация UserDefaults от Apple
➡️ Medium: пример использования UserDefaults
➡️ Официальная документация FileManager от Apple

Многопоточность и асинхронность
➡️ Немного о RunLoop
➡️ Medium: Swift Mutex benchmark
➡️ Параллелизм, многопоточность и асинхронное программирование
➡️ Хабр: Multithreading
➡️ YouTube: Multithreading в Swift с нуля
➡️ Medium: Deadlocks, Livelocks и Starvation
➡️ Medium: параллельное программирование на Swift
➡️ Устройство многопоточности в iOS

Книги по iOS
➡️ Swift подробно
➡️ Мет Ньюберг ios 14 programming (кому нужен перевод книги, пишите мне - я скину)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥277👍5💩21🎉1
Туториал для начинаюших по Bezier Paths и Shape Layers

Существуют разные способы и разные подходы к тому, как нарисовать "экран" приложения:

— Использовать полученную графику от дизайнеров.
— Реализовать UI в коде.
— Использовать Interface Builder.
Комбинации способов выше и другие варианты.

Но иногда, нам необходимо нарисовать сложный графический UI, который зачастую делается с помощью Bezier Paths и Shape Layers.

В статье предлагается практическое руководство по созданию Bezier Paths. Автор рассматривает серию небольших, но понятных примеров, и знакомит с обеими концепциями.

#digest #UI
12👍6🔥4💩2🤷‍♂1❤‍🔥1
Привет, друзья!
У нас на YouTube канале вышла викторина по iOS
💡

В ней соревнуются четыре опытных разработчика, и каждый из них показывает свои знания и навыки.

Викторина состоит из пяти секций, которые охватывают различные аспекты разработки на iOS. Мы покрываем такие темы, как:

🔴 SwiftUI
🔴 Сеть
🔴 Многопоточность
🔴 Рандомные вопросы
🔴 Основы Swift.

В каждой секции есть по семь вопросов, начиная с простых и заканчивая самыми сложными.

Кроме того, мы также выпустили моковое собеседование с одним из наших подписчиков на платформе Boosty.

Удачи в развитии ваших навыков разработки на iOS! 🚀📚

#digest #свояигра #викторина
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🎉52🔥2🤮2💯1🙉1