zaczynam przygodę ze #switfui / #swift
i na dzień dobry mam zagwozdkę,
jaką właściwie wybrać strukturę katalogów?
Apka będzie wyglądać jak ta sekcja z allegro:
https://i.imgur.com/APl9yp5_d.webp?maxwidth=760&fidelity=grand
czyli logo na górze, potem trzy menu, pośrodku content i na dole znów TabView
https://developer.apple.com/forums/thread/710501
vs
https://www.hackingwithswift.com/books/ios-swiftui/introducing-mvvm-into-your-swiftui-project
To w końcu lubimy MVVM czy nie?
i na dzień dobry mam zagwozdkę,
jaką właściwie wybrać strukturę katalogów?
Apka będzie wyglądać jak ta sekcja z allegro:
https://i.imgur.com/APl9yp5_d.webp?maxwidth=760&fidelity=grand
czyli logo na górze, potem trzy menu, pośrodku content i na dole znów TabView
https://developer.apple.com/forums/thread/710501
vs
https://www.hackingwithswift.com/books/ios-swiftui/introducing-mvvm-into-your-swiftui-project
To w końcu lubimy MVVM czy nie?
@qwelukasz: Na Swifcie leć w MVVM/MVVM-C
Odnośnie SwiftUI, to minimalny sensowny target to iOS 14, poniżej tego nie ma co schodzić, bo się pochlastasz zanim zrobisz coś sensownego.
Musiałbym dokładnie przeczytać artykuł tego kolesia na temat tego, że SwiftUI nie dogaduje się z MVVM, ale u siebie w produkcie produkcyjnym taki zestaw mam i polecam.
Możesz też rozważyć np. UIKit. Mniej nowocześnie, ale można uznać że bezpieczniej, bo dużo więcej materiałów
Odnośnie SwiftUI, to minimalny sensowny target to iOS 14, poniżej tego nie ma co schodzić, bo się pochlastasz zanim zrobisz coś sensownego.
Musiałbym dokładnie przeczytać artykuł tego kolesia na temat tego, że SwiftUI nie dogaduje się z MVVM, ale u siebie w produkcie produkcyjnym taki zestaw mam i polecam.
Możesz też rozważyć np. UIKit. Mniej nowocześnie, ale można uznać że bezpieczniej, bo dużo więcej materiałów
Prism2772 via iOS
- 0
@qwelukasz: Główna kwestia jak zrobić foldery w projekcie, to tak aby było wygodnie. To i tak nie ma wpływu na czas kompilacji. A plik pbxproj i tak będzie wyglądał tragicznie.
Sam mam w projekcie podzielone po features. W tym zazwyczaj folder viewModels pod modele, views pod widoku, resources pod assety i helpers pod dodatki w stylu serwisu sieciowego.
Ale najważniejsze to jest aby Ci się wygodnie po tym poruszało.
Jeśli chodzi
Sam mam w projekcie podzielone po features. W tym zazwyczaj folder viewModels pod modele, views pod widoku, resources pod assety i helpers pod dodatki w stylu serwisu sieciowego.
Ale najważniejsze to jest aby Ci się wygodnie po tym poruszało.
Jeśli chodzi
Prism2772 via iOS
- 1
@qwelukasz: Sam napis "Moje Allegro" to pewnie navigation controller title by było, a do tych przycisków sam używam tego
https://github.com/uias/Tabman
Nie wiem czy to najlepsza opcja, ale u mnie działa spoko :D
Najłatwiej będzie chyba odesłać do dokumentacji
https://docs.swift.org/swift-book/LanguageGuide/Extensions.html
Albo tutorial
https://blog.logrocket.com/swift-extensions-an-overview-with-examples/
Jeśli chodzi o jakieś fragmenty kodu, możesz się jutro w trakcie dnia odezwać, bo teraz już nie chce do komentowania pa siadać.
Jeśli chodzi o font, to mam rozszerzenie
https://github.com/uias/Tabman
Nie wiem czy to najlepsza opcja, ale u mnie działa spoko :D
Najłatwiej będzie chyba odesłać do dokumentacji
https://docs.swift.org/swift-book/LanguageGuide/Extensions.html
Albo tutorial
https://blog.logrocket.com/swift-extensions-an-overview-with-examples/
Jeśli chodzi o jakieś fragmenty kodu, możesz się jutro w trakcie dnia odezwać, bo teraz już nie chce do komentowania pa siadać.
Jeśli chodzi o font, to mam rozszerzenie
Prism2772 via Wykop
- 1
@qwelukasz: MVC czy MVVM? :D
Jeśli chodzi o taką apkę, która musi fetchować dane co 5 minut, czy ogólnie musi mieć świeże po odpaleniu, to nawet bym nie myślał aby angażować CoreData
Wrzucasz w jakąś zmienną w kodzie(najlepiej jakiś data source, który jest wywoływany z view modelu) i na podstawie tego data source możesz operować tymi danymi jak potrzebujesz
Nie wiem czy sam to ogarnę, bo jednak to jest chwila aby
Jeśli chodzi o taką apkę, która musi fetchować dane co 5 minut, czy ogólnie musi mieć świeże po odpaleniu, to nawet bym nie myślał aby angażować CoreData
Wrzucasz w jakąś zmienną w kodzie(najlepiej jakiś data source, który jest wywoływany z view modelu) i na podstawie tego data source możesz operować tymi danymi jak potrzebujesz
Nie wiem czy sam to ogarnę, bo jednak to jest chwila aby
Prism2772 via Wykop
- 0
@qwelukasz: AVPlayera, ale akurat w apce nad którą pracuje nie mam zaimplementowanego full screena. Z tego co pamiętam to chyba delegat jest w stanie wykryć wyjście z full screena i wtedy można odpalić znowu odtwarzanie. Piszę z głowy więc dokładnie nie pamiętam. Jakby nie udało Ci się znaleźć to daj znać, będąc przy kompie poszukam rozwiązania
Prism2772 via Wykop
- 0
@qwelukasz: Ten fragment kodu
Nie oznacza, że w momencie kiedy zakończy się odtwarzanie elementu, to wtedy automatycznie wyjdzie z full screena. Nie mówi nic o zachowaniu jakie ma się zdarzyć po wyjściu użytkownika z odtwarzacza.
Spróbuj zrobić coś takiego.
To powinno wykryć wyjście z fullscreena
controller.exitsFullScreenWhenPlaybackEnds = true
Nie oznacza, że w momencie kiedy zakończy się odtwarzanie elementu, to wtedy automatycznie wyjdzie z full screena. Nie mówi nic o zachowaniu jakie ma się zdarzyć po wyjściu użytkownika z odtwarzacza.
Spróbuj zrobić coś takiego.
controller.delegate = self
extension VideoPlayerView: AVPlayerCOntrollerDelegate {
func playerViewController(_ playerViewController: AVPlayerViewController, willEndFullScreenPresentationWithAnimationCoordinator coordinator: UIViewControllerTransitionCoordinator) {
coordinator.animate(alongsideTransition: nil) { transitionContext in
self.playerViewController?.player.play()
}
}
To powinno wykryć wyjście z fullscreena
Prism2772 via Wykop
- 0
Prism2772 via Wykop
- 0
@qwelukasz: i
self.playerViewController.player.play()
bez znaku zapytania
Prism2772 via Wykop
- 0
@qwelukasz: Spróbuj do
struct VideoPlayerView: UIViewControllerRepresentable {
dopisać struct VideoPlayerView: NSObject, UIViewControllerRepresentable {
pomóżcie bo już głupieje
zrobiłem sobie programmatic navigation wg tego poranika
https://www.youtube.com/watch?v=oxp8Qqwr4AY
to co teraz chce zrobić, to custom "Back" button, tzn wywalić napis "Back" i zostawić sam chevron "<" - tak jak jest np na allegro czy olx
Na screenie przykład z allegro.. jak to zrobić?
póki co mam coś takiego:
.navigationDestination(for: BookmarkModel.self) { bookmark in
DrillDetailsView(
isInPracticePlan: true
)
.navigationBarBackButtonHidden()
.toolbar(.hidden, for: .tabBar)
.toolbar(content: {
ToolbarItem(placement: .navigationBarLeading, content:
.navigationBarBackButtonTitleHidden()
Lub też widzę że od iOS 14+
navigationItem.backButtonDisplayMode = .minimal