en
Feedback
iOS Dev

iOS Dev

Open in Telegram

👨‍💻Автор: Виктор Грушевский (@Viktorianec) ⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru 🍏Канал об iOS-разработке, алгоритмах и архитектурах ⭐️ Подготовка к собесам ⭐️ Код. Много кода. #ios #mobile #swift

Show more
7 885
Subscribers
+324 hours
+27 days
-3530 days
Posts Archive
iOS Dev
7 885
Написал статью про любопытный подход к код-ревью https://telegra.ph/Piramida-kod-revyu-03-24

iOS Dev
7 885
Недавно участвовал в конкурсе Телеграм для улучшения лиц в режиме реального времени (читать - с фронтальной камеры) и решил з
Недавно участвовал в конкурсе Телеграм для улучшения лиц в режиме реального времени (читать - с фронтальной камеры) и решил зафиксировать свой опыт в виде статьи на Medium Вот здесь она на английском А вот тут (на хабре) - на русском.

iOS Dev
7 885
Пустая трата времени или выбор нужного инструмента? Возможно вы слышали о термине 10x - инженер. Даже Авраам Линкольн как-то сказал: "Если бы у меня было 8 часов, чтобы срубить дерево, я бы потратил 7, затачивая свой топор." Также можно сказать о разнице между джуном и сениор-разработчиком. Если джун будет пытаться 8 часов рубить тупым топором, то сениор потратит час на выбор нужной бензопилы и 5 минут, чтобы спилить дерево (отличный пример, кстати). От себя добавлю - что очень полезно заранее иметь несколько разных инструментов, и тогда никакой лес не будет страшен.

iOS Dev
7 885
⚠️У Apple сбой на серверах. Проблема затронула портал Apple Developer, AppStore Connect и iCloud. С Xcode также проблемы. Не
⚠️У Apple сбой на серверах. Проблема затронула портал Apple Developer, AppStore Connect и iCloud. С Xcode также проблемы. Не получается скачать приложения из App Store. Это не только в РФ, но и как минимум в Германии тоже. UPD. Чаще всего пользователи видят DNS Resolve Failure.

iOS Dev
7 885

iOS Dev
7 885
Приложения под какую платформу приносят больше денег? Конкретно в этом примере для приложения Motionleap от appfigures заметн
+1
Приложения под какую платформу приносят больше денег? Конкретно в этом примере для приложения Motionleap от appfigures заметно, что при одинаковом графике загрузок вместо ожидаемого дохода примерно на одном уровне, App Store просто жесточайше доминирует. Более 40 000 долларов в день против 5 000 у Google Play. #любопытно #iOS #Android #motionleap

iOS Dev
7 885
Рубрика #whattosee? Лайтовый сериал про то, как в будущем сознание умирающего человека можно будет переселить в цифровой мир.
Рубрика #whattosee? Лайтовый сериал про то, как в будущем сознание умирающего человека можно будет переселить в цифровой мир. Именно по этому пути идет программист Нэйтан: после смерти в ДТП он переносится в виртуальный мир, где влюбляется в реальную девушку Нору. Сериал с довольно понятным названием "Загрузка" может оказаться глубже, чем кажется.

iOS Dev
7 885
https://www.swift.org/blog/swift-5.6-released/ А вот и релиз свифта подвезли (теперь и в официальном доке с примерами)!

iOS Dev
7 885
У Рея Вендерлиха появился раздел на GitHub с бесплатными книгами. Пусть они и не содержат супер-свежую информацию, но вполне могут оказаться полезными.

iOS Dev
7 885
Магические слова SOLID, DRY, KISS, YAGNI Освежим знания? SOLID S - single responsibility. Принцип единственной ответственности (single responsibility principle). Для каждого класса должно быть определено единственное назначение. Все ресурсы, необходимые для его осуществления, должны быть инкапсулированы в этот класс и подчинены только этой задаче. O - open–closed. Принцип открытости/закрытости (open-closed principle) «программные сущности должны быть открыты для расширения, но закрыты для модификации». L - Liskov substitution. Принцип подстановки Лисков (Liskov substitution principle) «объекты в программе должны быть заменяемыми на экземпляры их подтипов без изменения правильности выполнения программы» I - interface segregation. Принцип разделения интерфейса (interface segregation principle) «много интерфейсов, специально предназначенных для клиентов, лучше, чем один интерфейс общего назначения» D - dependency inversion. Принцип инверсии зависимостей (dependency inversion principle) «Зависимость на Абстракциях. Нет зависимости на что-то конкретное» DRY Don’t repeat yourself Это принцип разработки программного обеспечения, нацеленный на снижение повторения информации различного рода, особенно в системах со множеством слоёв абстрагирования. Принцип DRY формулируется как: «Каждая часть знания должна иметь единственное, непротиворечивое и авторитетное представление в рамках системы». Он был сформулирован Энди Хантом (англ.) и Дэйвом Томасом в их книге The Pragmatic Programmer (англ.). Они применяли этот принцип к «схемам баз данных, планам тестирования, сборкам программного обеспечения, даже к документации». Когда принцип DRY применяется успешно, изменение единственного элемента системы не требует внесения изменений в другие, логически не связанные элементы. Те элементы, которые логически связаны, изменяются предсказуемо и единообразно. Помимо использования методов и функций в коде, Томас и Хант считают необходимым использование генераторов кода, автоматических систем компиляции. KISS Keep it simple stupid Этот принцип лучше всего иллюстрируется историей, когда Джонсон вручил команде инженеров-авиаконструкторов набор инструментов, поставив им условие: механик среднего уровня должен суметь отремонтировать реактивный самолёт, который они проектировали, в полевых условиях только с этими инструментами. Таким образом, «stupid» относится к отношению между тем, что всё ломается, и сложностью необходимого для этого ремонта. YAGNI You aren't gonna need it Согласно адептам принципа YAGNI, желание писать код, который не нужен прямо сейчас, но может понадобиться в будущем, приводит к следующим нежелательным последствиям: - Тратится время, которое было бы затрачено на добавление, тестирование и улучшение необходимой функциональности. - Новые функции должны быть отлажены, документированы и сопровождаться. - Новая функциональность ограничивает то, что может быть сделано в будущем, — ненужные новые функции могут впоследствии помешать добавить новые нужные. - Пока новые функции действительно не нужны, трудно полностью предугадать, что они должны делать, и протестировать их. Если новые функции тщательно не протестированы, они могут неправильно работать, когда впоследствии понадобятся. - Это приводит к тому, что программное обеспечение становится более сложным (подчас чрезмерно сложным). - Если вся функциональность не документирована, она может так и остаться неизвестной пользователям, но может создать различные риски для безопасности пользовательской системы. - Добавление новой функциональности может привести к желанию ещё более новой функциональности, приводя к эффекту «снежного кома».

iOS Dev
7 885
Рубрика #whattosee? Что, если вы могли бы оставить работу за пределами офиса? Или не думать о бытовых проблемах на работе? Ра
Рубрика #whattosee? Что, если вы могли бы оставить работу за пределами офиса? Или не думать о бытовых проблемах на работе? Разделение - сериал об инженере, который подвергся подобной процедуре, а вот хорошо это, или плохо - стараются рассказать сценаристы сериала для Apple.

iOS Dev
7 885
Возможно, вы считаете, что столкнулись с выгоранием. Вопрос этот сложный и морально, и физически. Постарался перевести несколько советов, как этого можно избежать: Посмотрите на количество задач. Решите, какая из них не является важной, чтобы закончить ее первой. Установите рейтинг для каждой задачи. Проверьте объем воздействия и усилий для каждой задачи. Избавьтесь от того, что не оказывает влияния и требует много усилий. Сосредоточьтесь сначала на тех делах, которые имеют огромное влияние и не требуют больших усилий. Во время работы блокируйте социальные сети и уведомления в браузере. Постарайтесь сохранять свежесть разума. Если вы каждый день работаете с одной и той же старой технологией, то ситуация ухудшается, и ваша работа становится однообразной. Конечно, у вас может быть работа, где ваша ответственность не позволяет вам пробовать разные технологии или что-то менять, но вы можете попробовать переключиться. Посвятите 20% своего времени изучению новых технологий или созданию собственного проекта. Пробуйте новые библиотеки, вносите свой вклад в открытый исходный код и выходите за пределы своей зоны комфорта. Это не поможет вам мгновенно, но может окупиться в долгосрочной перспективе. Эта стратегия поможет вам получить лучшую работу или повышение в будущем. Регулярно делайте перерывы в течение дня. Сидение по 8-10 часов перед компьютером без перерыва не поможет вам быть продуктивным. Научно доказано, что продуктивность резко снижается после 4 часов сосредоточенной работы. Поэтому разминайтесь каждый час, прогуляйтесь или съешьте что-нибудь. Поговорите с коллегами, спросите, не нужно ли им просмотреть код или помочь с юнит-тестами. Регулярный перерыв может творить чудеса в кодинге, особенно когда вы погружены в отладку проекта. При работе над любым проектом вы можете следовать технике Pomodoro. Не просто кодируйте. Раз в несколько месяцев делайте перерыв в работе над кодом и отправляйтесь в отпуск. Это одна из самых освежающих вещей, которые вы можете сделать. Проведите время со своей семьей и друзьями. Уделяйте время чтению книг, посещению встреч или конференций, слушайте отраслевые подкасты или пишите собственные технические блоги (как раз этим я сейчас и занимаюсь). Занимайтесь спортом и высыпайтесь. Старайтесь делать физические упражнения хотя бы 2-3 раза в неделю или занимайтесь плаванием. Включите в свой рацион здоровую пищу, овощи, орехи и фрукты. Получайте достаточно сна и используйте шумоподавление. Ниже приведены некоторые рекомендации по оптимизации вашего сна: - Ограничьте потребление кофеина после 14:00 - Уменьшите количество синего света (пользователи Mac, включите ночной режим, пользователи Windows - ночной свет) - Понизьте температуру в спальне. - Установите затемненные шторы или используйте маску для глаз. - В больших проектах всегда следуйте итеративному процессу разработки. Разработайте несколько модулей, скомпилируйте и протестируйте их. Разработайте еще несколько модулей. Не пишите целую огромную программу, не компилируя и не отлаживая ее, а затем пытайтесь заставить ее работать. Это быстрый путь к разочарованию.

iOS Dev
7 885
Языки для разработки в вашей компании или пет-проекте
Anonymous voting

iOS Dev
7 885
Супер-краткое сравнение баз данных, которые так или иначе приходилось использовать в работе и пет-проектах. 1. SQLite Технически определяемая как реляционная система управления базами данных (РСУБД), SQLite является самым популярным в мире механизмом баз данных. В отличие от плоского файла или иерархической системы, эта база данных iOS хранит данные в таблицах. Органично интегрированная в приложение, SQLite работает как отдельная служба или в фоновом режиме, оставаясь очень легковесной. Почему именно SQLite? - Простота внедрения - Не требуется установка и нулевая конфигурация - Высокая переносимость и совместимость с iOS и любой платформой - от Windows до macOS, от Linux до Android. SQLite может связывать несколько языков программирования, включая C++, C#, JavaScript, Objective-C, PHP, Ruby, Java и Python. 2. Realm Формально являясь MongoDB, Realm представляет собой систему управления объектными базами данных с открытым исходным кодом. С помощью этой объектно-ориентированной базы данных разработчики могут кодировать отношения между объектами. Если SQLite использует базы данных SQL, то Realm использует C++. Новичок на сцене приложений для iOS, Realm составляет сильную конкуренцию специально разработанным для Android и iOS Xamarin и React Native. Почему именно Realm? - Он быстрее, по сравнению с SQLite и Core Data. - Благодаря ценной масштабируемости, Realm может обрабатывать большое количество пользователей и данных. - Для разработчиков имеется четкая документация, облегчающая процесс разработки. - У него есть сеть поддержки актрисы Twitter, Github и StackOverflow. 3. Core Data Спонсируемый Apple, Core Data позволяет сохранять данные приложения для автономного использования, кэшировать временные данные приложения, определять типы и категории данных. Если быть точным, Data Core - это фреймворк персистентности, тип промежуточного программного обеспечения, которое хранит данные в базе данных - он имеет возможность использовать SQLite в качестве базы данных. Почему именно Core Data - Использует специфические для Apple языки, такие как Swift и Objective-C. - Он быстрее SQLite при хранении данных - Фреймворк имеет встроенные функции, которые сокращают написанный код на 70% - Данные могут быть организованы в бинарные, XML или SQLite хранилища. А какие решения используете вы в своих проектах? Обязательно поделитесь!

iOS Dev
7 885
Если вы задумывались о том, чтобы съездить на техническую конференцию куда-то за пределы РФ, то могу вам посоветовать ресурс, на котором анонсируются многие известнейшие англо- и не только события: https://confs.tech/ios

iOS Dev
7 885
Отличные советы от инженеров Apple, как сделать ваш код более производительным. Для этого достаточно всего лишь... Открыть страницу на гитхаб

iOS Dev
7 885
Если вы хотите почитать что-то, что не связано с программированием напрямую, то я бы рекомендовал обратить внимание на книгу
Если вы хотите почитать что-то, что не связано с программированием напрямую, то я бы рекомендовал обратить внимание на книгу от Даниэля Канемана: "Думай медленно... Решай быстро" Наши действия и поступки определены нашими мыслями. Но всегда ли мы контролируем наше мышление? Нобелевский лауреат Даниэль Канеман объясняет, почему мы подчас совершаем нерациональные поступки и как мы принимаем неверные решения. У нас имеется две системы мышления. «Медленное» мышление включается, когда мы решаем задачу или выбираем товар в магазине. Обычно нам кажется, что мы уверенно контролируем эти процессы, но не будем забывать, что позади нашего сознания в фоновом режиме постоянно работает «быстрое» мышление – автоматическое, мгновенное и неосознаваемое…

iOS Dev
7 885
Хороший туториал по созданию кастомного бэкграунда с блюром для ваших модальных контроллеров https://betterprogramming.pub/how-to-present-a-view-controller-with-blurred-background-in-ios-4350017e6073

iOS Dev
7 885
Если вы работаете с подписками в вашем приложении или только планируете их встроить, а черпать вдохновение откуда-то нужно, то советую посмотреть в сторону этого сайта https://www.paywallscreens.com/

iOS Dev
7 885
Скорее всего, многие из вас слышали или даже использовали Texture в своей работе. Не могу не поделиться кратким описанием, чт
Скорее всего, многие из вас слышали или даже использовали Texture в своей работе. Не могу не поделиться кратким описанием, что это и зачем же он используется: Texture - это фреймворк для iOS, построенный поверх UIKit, который обеспечивает плавность и отзывчивость даже самых сложных пользовательских интерфейсов. Изначально он был создан для создания Paper от Facebook и сочетается с анимацией pop, основанной на физике, но он также эффективен при использовании UIKit Dynamics и обычных приложений. Совсем недавно он был использован для переработки приложения Pinterest. Если вы когда-либо сталкивались с ошибками повторного использования ячеек, пытались обеспечить высокую производительность предварительной загрузки данных для страницы или интерфейса в стиле прокрутки или даже просто пытались удержать свое приложение от выпадения слишком большого количества кадров, вы можете извлечь выгоду из интеграции Texture. https://texturegroup.org/ #iOSDev #iOS #Texture