23 августа 2026
ИльясДля поиска работы не лучше использовать uikit например от iOS 15-16 ?
Всё нужно использовать, всё
Petrych 🇦🇪это да, лучше значит как оно под капотом все, ноооо
зачем усложнять)
Разработка приложения заняла много времени?
Petrych 🇦🇪мне если честно не нравится кит
В следующий раз попробуй использовать всю начинку на uikit, навигацию и так далее, а вьюшку рисуй на swiftUI. Сейчас многие компании работают с таким подходом.
MaxА чем NavigationPath плох?
На небольших проектах даже удобнее с навигейшнпаз, но когда проект начинает расти и нужно переходить в разные вьюшки и от одной на другую пропуская одни это не совсем удобно. UiKit навигация дает больше контроля. Но сама архитектура сложнее реализуется, чем просто пишешь на swiftUI.
Так же архитектурно лучше всего отделять вью и навигацию. То есть с навигацией UIKit вьюшка не будет знать про навигацию и будет заниматься только своими делами.
Я имел ввиду для саморазвития и для входа в контекст разработки на данный момент было бы полезно попробовать такой подход, а так каждый разраб сам знает как писать свою прилу.
Dias AtudinovНа небольших проектах даже удобнее с навигейшнпаз, но когда проект начинает расти и нужно переходить в разные вьюшки и от одной на другую пропуская одни это не совсем удобно. UiKit навигация дает больше контроля. Но сама архитектура сложнее реализуется, чем просто пишешь на swiftUI.
Так же архитект
Я сейчас делаю клиент для аниме сайта, не знаю насколько это масштабный проект. Ну экранов 7 условно. С NavigationPath никаких проблем, вынес в координатор, вью вызывает у вм метод, этот метод кложуру дергает, и в фабрике уже используя координатор навигируюсь
Dias AtudinovЯ вижу роутер, но navigationPath нет, можешь показать реализацию роутера?
```swift
//
// Coordinator.swift
// AnimeWeeb
//
// Created by Maksim Sazanovich
//
import Foundation
import SwiftUI
@Observable
final class Coordinator {
var path = NavigationPath()
let factory: ScreenFactory
init(factory: ScreenFactory) {
self.factory = factory
}
@ViewBuilder
func resolve(screen: Screen) -> some View {
switch screen {
case .home:
factory.makeHomeScreen(coordinator: self)
case .login:
factory.makeLoginScreen(coordinator: self)
case .register:
factory.makeRegisterScreen(coordinator: self)
case .animeDetails(let animeID):
factory.makeAnimeDetailsScreen(animeID: animeID, coordinator: self)
case .watch(let model):
factory.makeWatchScreen(model: model, coordinator: self)
case .profile:
factory.makeProfileScreen(coordinator: self)
}
}
func navigate(to screen: Screen) {
switch screen {
case .home:
path = NavigationPath()
default:
path.append(screen)
}
}
func pop() {
if !path.isEmpty {
path.removeLast()
}
}
}
```
Max```swift
//
// Coordinator.swift
// AnimeWeeb
//
// Created by Maksim Sazanovich
//
import Foundation
import SwiftUI
@Observable
final class Coordinator {
var path = NavigationPath()
let factory: ScreenFactory
init(factory: ScreenFactory) {
self.factory = factory
}
Ну думал просто добавить функцию popToHome и не париться со switch и навигейт будет чисто отвечать за переход в некст вьюшку
Dias AtudinovНу думал просто добавить функцию popToHome и не париться со switch и навигейт будет чисто отвечать за переход в некст вьюшку
ну оно изначально так и было, на каждый экран свой метод перехода. А потом оно распухло, и я понял, что можно унифицировать, пожертвовав home
24 августа 2026
25 августа 2026
Всем привет!
Планируется к запуску цифровой продукт на широкую аудиторию для тестирования («в боевых условиях»). Сервис работает с пользовательскими данными, но запускается без открытия юридического лица (в статусе физических лиц) и без приема денежных средств.
Вопросы:
1. Запуск без юрлица: Практиковал ли кто-то полноценный запуск и тестирование продуктов, собирающих пользовательские данные, без регистрации юридического лица? Как это обычно организуется на практике?
2. Ответственность физических лиц: Какая личная юридическая ответственность ложится на создателей в случае сбоев, утечек или претензий пользователей, если компания не зарегистрирована?
3. Чем руководствуются: Какие подходы, статусы или оговорки (например, дисклеймеры «as is» или статусы тестового режима) используют разработчики в таких ситуациях, чтобы попытаться снизить риски? Насколько это реально работает с точки зрения закона?