506936354_714108128265115_5979486925587998035_n.png

https://www.kodeco.com/books/swiftui-cookbook/v1.0/?fbclid=IwZXh0bgNhZW0CMTAAYnJpZBEwU29nQ2tnTjM1SGxpTWtpOQEeyGJy1AogvW6fm7aX42mroGwNUaCEaUHsnrGYqRwLdmw0Xj_q6BZQsL3BNdA_aem_TROlrE0KbnaRNQJ8y2OfwQ

Korzystając z przykładów podanych we wprowadzeniu do tego ćwiczenia (rozdział 7 podręcznika "SwiftUI Cookbook") wykonaj aplikację która będzie przeglądarką dwuczęściowych historyjek/żartów (w formie: setup / delivery).

W najprostszej wersji (na zaliczenie), treści historyjek mogą być na stałe zakodowane w postaci lokalnej statycznej listy struktur. Treści żartów można wymyślić samemu, lub pobrać z serwisu https://jokeapi.dev/. Przykładowy URL pobrania:  "[<https://v2.jokeapi.dev/joke/Programming?type=twopart>](<https://v2.jokeapi.dev/joke/Programming?type=twopart>)".

R1. Jednym rodzajem rozszerzenia, może być dodanie funkcjonalności wyświetlania w

odmienny sposób wierszy/żartów już przeglądniętych (na przykład szarym kolorem tekstu lub tła, lub wyświetlaniem jakiegoś symbolu, np. Image(systemName: checkmark)). W tym celu strukturę/model żartu można rozbudować o pole "wasPresented: Bool"

R2. W przypadku rozszerzenia o dynamiczne pobieranie prezentowanych treści, można na początku pobrać kilka żartów np. 3-5, a gdy wszystkie zostaną przeglądnięte, wtedy dynamicznie powiększyć listę o kilka nowych pozycji.

R3. Jeszcze innym rozszerzeniem, może być wzbogacenie pełnego opisu żartu o jakiś rysunek/ ilustrację. Losowe obrazki do testów można pobierać ze strony "Lorem Picsum" : np.  AsyncImage(url: URL(string: "https://picsum.photos/200/300"))