iOS Такой 🍏
3.36K subscribers
427 photos
11 videos
2 files
304 links
IT | Подкасты | Apple | iOS Материалы | Swift

Реклама: @new_repository

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

Бусти: boosty.to/dimov_ios
Download Telegram
Отладка представлений SwiftUI: что вызывает изменения?

Представления SwiftUI с большим количеством триггеров перерисовки могут стать проблемой. Отладка представлений SwiftUI является необходимым навыком при написании динамических представлений с несколькими триггерами перерисовки. Такие обертки свойств, как @State и @ObservedObject, перерисуют ваше представление на основе измененного значения.

Часто это ожидаемое поведение, и все выглядит так, как должно быть. Однако в так называемых массивных представлениях SwiftUI (MSV) может существовать множество различных триггеров, вызывающих неожиданную перерисовку представлени
Из этой статьи вы узнаете, почему при написании динамических представлений SwiftUI необходимо предотвращать подобное.

#digest #swiftui
🔥6👍21
Как взять идею для пет проекта?

Есть такая проблема - нет идей для своего приложения. Простейший фреймворк для поиска перспективных направлений, без смс, но с регистрацией:

🔴 Регистрируетесь на AppMagic
🔴 Проходитесь по основным категориям приложений, смотрите Top Grossing.
🔴 Выбираете приложения на проверку
🔴 Открываете сайт SensorTower, регистрируетесь
🔴 Смотрите доходы и установки выбранных приложений

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

Автор поста @iosenjoyer

#digest
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥52
Вопросы с собеседований: в чем разница Weak и Unowned в Swift

В Swift weak и unowned — это два различных типа ссылок, которые позволяют избежать циклических зависимостей между объектами и предотвратить утечки памяти.

Weak (Слабая ссылка):

🔴weak используется, когда ссылка на объект не должна увеличивать счетчик ссылок объекта.
🔴Если объект, на который указывает weak ссылка, был освобожден, weak ссылка автоматически становится nil.
🔴Опциональный тип используется для weak ссылок, так как они могут быть автоматически устанавливаемыми в nil.

Unowned (Неудерживаемая ссылка):

🔴unowned также не увеличивает счетчик ссылок объекта, но предполагается, что объект, на который указывает unowned ссылка, всегда существует (не может быть nil).
🔴Если объект, на который указывает unowned ссылка, был освобожден, попытка доступа к этой ссылке приведет к краху приложения.
🔴Используется, когда можно гарантировать, что объект, на который указывает ссылка, будет существовать до тех пор, пока существует unowned ссылка.

Выбор между weak и unowned зависит от сценария использования. Если объект, на который указывает ссылка, может быть освобожден и ссылка может стать nil, то используйте weak. Если вы уверены, что объект всегда будет существовать, используйте unowned. Ошибочное использование unowned в случае, когда объект может быть освобожден, приведет к краху приложения из-за доступа к освобожденной памяти.

#digest
Please open Telegram to view this post
VIEW IN TELEGRAM
👍165🤔2🔥1👌1
Статистика JetBrains по Swift и Objective-C

Например
статистика по UI фреймворкам и менеджерам зависимостей. По ссылке больше;)

Эти вопросы были заданы только разработчикам, которые выбрали Swift или Objective-C в качестве одного из трех своих основных языков программирования.

*Примечательно, если переводить статью с английского через Яндекс, название технологии Swift Package Manager он сохраняет. А переводчик по-умолчанию на сайте JetBrains от Google по-умолчанию переводит что может, у него получается "Менеджер зависимостей Swift".

#digest
👍107🔥2
Всем привет! Давно не виделись :)

Мы не сидели сложа руки, а готовили для вас новую рубрику - "Как мы стали джунами"

Наши гости Азат и Данила из Сбера расскажут про свой первый опыт трудоустройства и сложности, с которыми пришлось столкнуться. Приятного просмотра! 

Ребят, нас очень мотивирует ваша обратная связь! 
С вас лайки и комментарии, а с нас всё более качественный и полезный контент :) 
Увидимся!

00:44 Гости
01:34 Почему iOS/Android?
03:58 Как учились?
07:42 Обучающие материалы бесполезны на реальных проектах?
13:52 В какой момент поняли, что пора искать работу?
16:00 Про поиск работы
18:44 Про вранье в резюме
24:56 Ожидания/реальность
26:33 Про менторов
29:00 Про синдром самозванца
34:28 Советы самому себе в прошлом
35:52 Мифы про покраску кнопок
37:43 Про индивидуальный план развития
42:43 Про сожаления о прошлом
43:49 Советы от ребят по поиску работы
47:10 Про самые важные навыки


#digest
👍214🔥4❤‍🔥3🥰2🍌2👎1
Мок-собеседование iOS разработчика

Что такое Mock Interview? Mock Interview - это практическое тренировочное собеседование, которое отлично подготовит вас к реальному собеседованию на работу. Его основная цель - смоделировать приближенную к реальности ситуацию job interview и отработать возможные ответы на трудные вопросы.

Привет! В сегодняшнем выпуске у нас в гостях Миша и Вова, вы уже знакомы. Миша проведет собес, а Вова попытается защитить свой пояс UFC, ой, свое звание сеньора. Будет жарко! Будет много лайфкодинга! Приятного просмотра!

Не скупитесь на обратную связь! Это важно. Вместе мы сделаем мир ИТ чуть более доступным для всех 😊

#digest #собеседование
🔥20👍72🤡1🤣1
Как использовать дженерики в Swift

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

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

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

#digest
👍83🔥3👎1
Разговоры про Apple

Друзья, всем привет!
Сегодня у нас лайтовый эфир на поговорить.

А побеседуем мы о новинках, похоливарим насчет ИИ и порассуждаем о высоком. Приятного просмотра!

#digest
👍9🔥2
Мастерство работы в SwiftUI

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

Содержание статьи

- Redux или MVVM?
- Используйте
@StateObject и @ObservableObject
- Создавайте
@Published переменные с осторожностью
- Разбивайте содержимое body на более мелкие части для минимизации времени компиляции
- Предпочтите
@State для анимации вместо @Published
- Объявляйте объекты Observable в определенном месте, чтобы избежать ненужного обновления UI
- Найдите, какое изменение данных вызывает обновление представления SwiftUI
- Используйте LazyHStack и LazyVStack, если у вас длинный список
- Есть ли что-нибудь похожее на viewDidLoad()?
- Используйте UIKit компоненты непосредственно в SwiftUI
- Модификатор с условиями
- Избегайте совместного использования .padding и .frame
- Используйте GeometryReader с умом
- Эпизодическое использование AnyView
- Обязательное используйте ID в Foreach и List
- Предпочитайте использовать текст, а не метку
- Используйте Group для возврата нескольких экземпляров представления
- Используйте .fixedSize(), чтобы указать, что фрейм не изменяется
- Напутственные слова


#digest
👍12🔥42
😱 AnyView — зло SwiftUI

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

Он пришел к выводу, что AnyView может существенно замедлять работу SwiftUI, особенно при большом количестве элементов в иерархии представлений. Также дал несколько советов, как избежать AnyView и использовать более эффективные способы работы с разными типами представлений.

#digest
👍7