Как стать автором
Обновить
-1
1.8

Пользователь

Отправить сообщение

Галактика Андромеды

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров36K

Галактика, расположенная в созвездии Андромеды, является ближайшей к нам крупной галактикой, и ярчайшей из спиральных галактик, после Млечного пути (который тоже является спиральной галактикой, и тоже виден на нашем небе). Есть еще Магеллановы облака, которые по яркости соперничают с Галактикой Андромеды, но они — галактики не самостоятельные, а их спиральные структуры уже сильно разрушены приливным влиянием Млечного пути, в гравитационном плену которого они находятся уже несколько миллиардов лет. Они — наши спутники. А галактика Андромеды — это полноценный и очень крупный звёздный город, являющийся одновременно и центром влияния на другие звездные города — меньшего размера, объединивший их вокруг себя в количестве нескольких десятков.

Будет справедливым утверждение, что Галактика Андромеды возглавляет Местную Группу галактик. Не Мы! — Не Млечный путь, а именно галактика Андромеды здесь главная.

Читать далее

YandexMapKit и SwiftUI: обратный геокодинг

Время на прочтение4 мин
Количество просмотров900

Обратное геокодирование (получение адреса по географическим координатам) на стороне клиента в рамках разработка мобильного приложения под IOS для мониторинга автотранспорта

IOS - 15.5, SwiftUI, YandexMapKit

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

Однако хочу "пожаловаться", что исключительно из-за картографии Яндекса в проекте начали использовать CocoaPods, потому что вендор (по состоянию на март 2024 года) не снизошел до разработки пакета, который можно подключить к проекту минуя Pods.

Читать далее

SwiftUI уроки (часть 5)

Время на прочтение14 мин
Количество просмотров4.5K

ссылка на 4ю часть

Buttons, Labels, Gradients

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

Читать далее

SwiftUI уроки (часть 4)

Время на прочтение6 мин
Количество просмотров3.5K

Понимание ScrollView и создание UI карусели

ссылка на 3ю часть

В этом уроке мы разберемся с таким элементом как ScrollView для создания длинных прокручивающихся полотен.

Читать далее

Как совмещать основную работу и проекты на стороне

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров51K

У многих из нас остается достаточно свободного времени в сутках. А почему бы не монетизировать это время, думает начинающий IT левак? Если работать по три часа в день в будние, брать по 2 тысячи за час, то получится 120 тысяч дополнительного дохода в месяц. Звучит отлично!

Меня зовут Даниил, и я через выгорание, увольнение, споры с заказчиками и успешные проекты научился совмещать карьеру в компании и ведение проектов на стороне.

Читать далее

Как я начал заниматься спортом по 2-3 часа в день

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров43K

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

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

Читать далее

SwiftUI уроки (часть 3)

Время на прочтение15 мин
Количество просмотров5.7K

Ссылка на часть 2

Создаем UI с помощью стеков

Стеки в SUI похожи на стеквью в UIKit. Если комбинировать горизонтальные и вертикальные стеки можно создать комплексный UI для приложения, который будет отлично адаптировать под различные размеры экранов и типы устройств. В UIKit основное средство создания UI — это auto layout который применяется для правильного отображения вьюшек на экране. Зачастую для начинающих разработчиков автолейаут кажется чем‑то очень сложным как для применения так и обучения, так что если вы уже переходите на SUI — есть хорошие новости, автолэйаут вам больше не потребуется. Вы будете оперировать такими компонентами как VStack, HStack, ZStack.

Читать далее

Оптимальный архитектурный шаблон iOS-приложения

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров9.3K

В статье описывается оптимальный архитектурный шаблон большого iOS-приложения на Swift, выступающего преимущественно тонким клиентом. Основной упор делается на применение чистой архитектуры. Статья предназначается как новичкам, так и опытным программистам. Для удобства навигации имеется оглавление.

Читать далее

Как устроен @State в SwiftUI

Время на прочтение7 мин
Количество просмотров4.7K

Привет! Меня зовут Илья, я iOS разработчик в компании Банки.ру
Уже больше двух лет наше приложение мы пишем на SwiftUI.

В статье расскажу о Property Wrapper'е @State.

Читать далее

Топ-5 распространенных практик написания хорошего Swift-кода

Время на прочтение10 мин
Количество просмотров2.5K

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

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

Читать далее

Как открыть успешный бизнес с первой попытки, если сейчас вы в найме

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров13K

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

Читать далее

Заводим Яндекс Карты в Compose Multiplatform

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров5.9K

Привет! Это мой первый пост на Хабре, буду рад услышать профессиональное и не очень мнение по поводу этой статьи.

Реализуем Яндекс Карты в KMP проекте с использованием Compose Multiplatform. Нестандартное решение с интерфейсом на Swift и передачей кода через DI.

Читать далее

Упрощаем локализацию iOS-приложения со String Catalogs

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров5.3K

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

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

Читать далее

Как выйти из тупика и начать расти: 5 ментальных ловушек, которые мешают это сделать

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров38K

Бывает ли у вас ощущение, что несмотря на все усилия, вы не получаете тех результатов, на которые рассчитываете? Что последние несколько лет в жизни ничего не меняется или становится только хуже. Кажется, что вы зашли в тупик – развития нет, роста нет, перспективы не радуют. Если это про вас, то причина, скорее всего, в одной из ловушек мышления, которые мешают развитию.

Читать далее

Когда мы теряем мотивацию

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров8.1K

Иногда, когда мы пишем код или работаем над любым другим проектами, в основном PET-проектами, мы теряем мотивацию. Но как избежать этого и работать как обычно?

Читать далее

Прививка от созависимости. Зачем нужен DI и как он работает в iOS-приложениях hh.ru

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров4.9K

Всем привет! На связи Яша Штеффен — iOS разработчик из hh.ru.

Думаю, любой, кто долгое время писал код для платформы, был свидетелем эволюции работы с зависимостями. На ранних этапах и в простых проектах все создавалось и настраивалось внутри использующих зависимости объектов. Затем частично начал применяться принцип инъекции, обычно через публичное свойство. На более крупных проектах можно было столкнуться с использованием DI‑библиотек, которые зачастую тащили за собой очень крупный блок плохо читаемого кода. При этом для решения проблемы чрезмерной связанности кода существуют элегантные и простые в использовании решения, которые не подразумевают использование сторонних библиотек.

В статье мы рассмотрим основы DI, поговорим о том, какую проблему решает этот принцип, окинем общим взглядом возможные варианты реализации: паттерны и популярные библиотеки. Подробно рассмотрим схему, по которой работает DI в многомодульном iOS проекте hh.ru. В конце статьи будет разобран пример простого приложения с аналогичным подходом к инъекции.

Читать далее

Упражнения для глаз

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров11K

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

Эти упражнения позволяют сохранять качественное зрение в любом возрасте.

Выполнение всего комплекса занимает 30-40 минут, каждый день делать надоест. Поэтому попробуйте делать курсами  Несколько недель через день, через два весь комплекс, а затем от случая к случаю. Но регулярно рекомендую выполнять соляризацию и пальминг.

Упражнения описывал сам, но кто хочет, может обратится к первоисточнику, ссылка на книгу внизу. Часть упражнений не описал, либо сам не делал, либо решил, что всё равно не будете делать:)

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

Читать далее

Что можно и что нельзя делать с Async/Await

Время на прочтение3 мин
Количество просмотров17K

Синтаксис async/await, введенный в Swift 5.5, значительно упростил асинхронное программирование, сделав его более доступным и интуитивно понятным. Однако, как и любой мощный инструмент, он может быть использован неправильно. Здесь я хочу рассмотреть пять распространенных ошибок, которые разработчики часто допускают при использовании async/await и предложить стратегии их избегания.

Ошибка 1: Необработка Ошибок

Асинхронные функции Swift могут вызывать ошибки, так же как и их синхронные аналоги. Однако многие разработчики, особенно те, кто только начинает работать с синтаксисом async/await, могут упускать обработку ошибок, что приводит к сбоям или непредсказуемому поведению.

Решение

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

Читать далее

Диспетчеризация в main thread с помощью MainActor

Время на прочтение6 мин
Количество просмотров12K

MainActor — это новый атрибут из Swift 5.5, который представляет из себя глобальный актор, выполняющий свои задачи в главном потоке (main thread). При создании приложений очень важно следить за тем, чтобы задачи обновления UI выполнялись в главном потоке, что при использовании нескольких фоновых потоков (background threads) иногда может быть затруднительно. Использование атрибута @MainActor поможет вам гарантировать, что ваш UI всегда будет обновляться в главном потоке.

Если вы не очень хорошо разбираетесь в акторах (Actor) в Swift, я рекомендую прочитать мою статью Акторы в Swift: как их использовать и как предотвращать состояние гонки по данным. Глобальные акторы (Global actors) ведут себя аналогично обычным акторам, и в этой статье я не буду вдаваться в подробности того, как работают обычные акторы.

Читать далее

Масштабирование телеграм-ботов на примере aiogram

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров15K

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

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

Читать далее

Информация

В рейтинге
2 260-й
Зарегистрирован
Активность