← Назад к вопросам

Есть ли проекты на GitHub?

1.0 Junior🔥 82 комментариев
#Soft Skills и карьера

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Мои проекты на GitHub

Да, у меня есть несколько проектов на GitHub, которые демонстрируют различные аспекты разработки под iOS. Вот некоторые из них:

1. WeatherApp (SwiftUI + Combine)

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

import SwiftUI
import Combine

class WeatherViewModel: ObservableObject {
    @Published var temperature: Double = 0
    @Published var city: String = ""
    
    func fetchWeather(for city: String) {
        // Реализация сетевого запроса
    }
}

Ключевые особенности:

  • Архитектура MVVM с использованием Combine
  • Работа с REST API (OpenWeatherMap)
  • Unit-тесты с XCTest
  • Адаптивный UI для всех размеров устройств
  • Кэширование данных с Core Data

2. TaskManager (UIKit + Core Data)

Менеджер задач с поддержкой офлайн-работы и синхронизацией.

class TaskManager {
    private let persistentContainer: NSPersistentContainer
    
    func saveTask(_ task: Task) throws {
        let context = persistentContainer.viewContext
        let taskEntity = TaskEntity(context: context)
        taskEntity.title = task.title
        taskEntity.isCompleted = task.isCompleted
        
        try context.save()
    }
}

Технологический стек:

  • UIKit с програмmatic UI
  • Core Data для локального хранения
  • OperationQueue для управления фоновыми задачами
  • Кастомные UITableViewCell и анимации
  • UserNotifications для напоминаний

3. NetworkLayer (Swift Package)

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

public protocol NetworkServiceProtocol {
    func request<T: Decodable>(_ endpoint: Endpoint) async throws -> T
}

public class NetworkService: NetworkServiceProtocol {
    private let session: URLSession
    private let decoder: JSONDecoder
    
    public init(configuration: URLSessionConfiguration = .default) {
        self.session = URLSession(configuration: configuration)
        self.decoder = JSONDecoder()
        decoder.keyDecodingStrategy = .convertFromSnakeCase
    }
}

Особенности реализации:

  • Поддержка async/await и completion handlers
  • Generic-типы для типобезопасности
  • Повторные запросы при ошибках сети
  • Логирование сетевой активности
  • Поддержка моков для тестирования

4. ARMeasurement (ARKit + RealityKit)

Приложение для измерений в дополненной реальности.

import ARKit
import RealityKit

class ARMeasurementViewController: UIViewController {
    private var arView: ARView!
    private var measurementPoints: [SIMD3<Float>] = []
    
    func addMeasurementPoint(at position: SIMD3<Float>) {
        measurementPoints.append(position)
        if measurementPoints.count == 2 {
            calculateDistance()
        }
    }
}

Используемые технологии:

  • ARKit для трекинга поверхностей
  • RealityKit для 3D-рендеринга
  • Metal для кастомных шейдеров
  • Core ML для распознавания объектов

5. CI/CD Pipeline (GitHub Actions)

Автоматизированные процессы для iOS-проектов.

name: iOS CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: macos-latest
    
    steps:
    - uses: actions/checkout@v2
    - name: Build and Test
      run: |
        xcodebuild clean build test \
          -project MyApp.xcodeproj \
          -scheme MyApp \
          -destination 'platform=iOS Simulator,name=iPhone 14'

Что автоматизировано:

  • Сборка проекта при каждом коммите
  • Запуск тестов и генерация отчетов
  • Статический анализ кода (SwiftLint)
  • Генерация документации (Jazzy)
  • Deploy в TestFlight

Почему эти проекты важны для iOS Developer

  1. Демонстрация навыков:

    • Показывают владение как UIKit, так и SwiftUI
    • Демонстрируют понимание различных архитектурных паттернов
    • Отображают опыт работы с системными фреймворками Apple
  2. Процесс разработки:

    • Все проекты используют Git Flow
    • Есть Code Review через Pull Requests
    • Поддерживается чистая архитектура и SOLID-принципы
  3. Качество кода:

    • Высокий code coverage (в среднем 85%+)
    • Использование SwiftLint для единого стиля
    • Подробные README с инструкциями по запуску
  4. Актуальность технологий:

    • Использование Swift Concurrency (async/await)
    • Поддержка новых версий iOS
    • Интеграция с Swift Package Manager

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