Vodič za izradu iOS aplikacija pomoću Swifta
Izrada iOS aplikacija nikada nije bila lakša zahvaljujući Appleovom sveobuhvatnom razvojnom ekosustavu putem Xcodea i programskog jezika Swift. U ovom članku naučit ćete osnovni tok izrade iOS aplikacije pomoću Swifta, od postavljanja alata, stvaranja novog projekta, dizajniranja sučelja i pokretanja aplikacije u simulatoru. Iako je ovaj vodič uvodni, koraci bi trebali biti dovoljni da vam pomognu u izradi jednostavne, funkcionalne aplikacije.
-
1. Priprema alata i zahtjeva
Prije početka menulis kode, pastikan Anda memiliki perangkat dan software berikut:
1. MacBook/iMac (atau macOS di perangkat Apple), karena Xcode secara resmi hanya berjalan di macOS.
2. Xcode (bisa diunduh gratis melalui Mac App Store). Xcode berisi editor kode, simulator iPhone, serta tool build dan debugging.
3. Swift (sudah termasuk di Xcode).
4. (Opsional) Akun Apple Developer untuk instalasi ke perangkat fisik dan publikasi ke App Store.
Nakon što je Xcode instaliran, otvorite aplikaciju i pričekajte da se proces instalacije dodatnih komponenti dovrši ako je potrebno.
-
2. Stvorite novi projekt u Xcodeu
1. Buka Xcode .
2. Pilih Create a new Xcode project .
3. U odjeljku predložaka odaberite:
- iOS
– aplikacija
4. Klik Next , lalu isi konfigurasi proyek:
– Product Name : misalnya `HelloSwiftApp`
– Team : pilih akun Anda (bisa kosong jika belum login)
– Organization Identifier : misalnya `com.namadeveloper`
– Interface : pilih SwiftUI (lebih modern dan sederhana untuk pemula)
Napomena: Ako želite UIKit, možete odabrati Storyboard, ali ovaj vodič se fokusira na SwiftUI.
– Language : Swift
5. Klik Next dan pilih lokasi penyimpanan proyek, lalu klik Create .
Nakon što je projekt kreiran, vidjet ćete strukturu datoteka poput `HelloSwiftAppApp.swift` i `ContentView.swift`.
-
3. Razumijevanje osnovne strukture SwiftUI projekta
U SwiftUI-ju, početna točka aplikacije obično je datoteka `YourAppNameApp.swift`. Na primjer:
“`brzo
uvoz SwiftUI-ja
@glavni
struktura HelloSwiftAppApp: Aplikacija {
var tijelo: neka scena {
Grupa prozora {
Prikaz sadržaja()
}
}
}
"`
Kratko objašnjenje:
– `@main` označava ulaznu točku aplikacije.
– `WindowGroup` je glavni spremnik prikaza.
– `ContentView()` je prvi prikazani prikaz.
U međuvremenu, `ContentView.swift` sadrži glavni prikaz:
“`brzo
uvoz SwiftUI-ja
struct ContentView: Pogled {
var body: some View {
Tekst („Pozdrav, svijete!“)
.padding()
}
}
"`
-
4. Izrada jednostavnog korisničkog sučelja: Aplikacija „Brze bilješke“
Kako bismo stvari učinili zanimljivijima, stvorit ćemo jednostavnu aplikaciju pod nazivom „Brze bilješke“ koja korisnicima omogućuje tipkanje bilješki i njihov prikaz kao popisa.
Korak 1: Stvaranje stanja za unos i popis
Promijenite `ContentView.swift` u:
“`brzo
uvoz SwiftUI-ja
struct ContentView: Pogled {
@State privatna varijabla noteText: String = “”
@State privatna varijabla bilješke: [String] = []
var body: some View {
NavigacijskiPrikaz {
VStack(razmak: 16) {
TextField("Napiši bilješku...", tekst: $noteText)
.textFieldStyle(RoundedBorderTextFieldStyle())
.padding(.horizontalni)
Gumb(akcija: dodajNapomenu) {
Tekst („Dodaj bilješku“)
.frame(maxWidth: .infinity)
}
.buttonStyle(.borderedProminent)
.padding(.horizontalni)
Popis {
ForEach(bilješke, id: \.self) { bilješka u
Tekst (bilješka)
}
.onDelete(izvrši: deleteNote)
}
}
.navigationTitle(“Brze bilješke”)
}
}
privatna funkcija dodajNapomenu() {
neka obrezano = noteText.obrezivanjeZnakova(u: .bijelirazmaciINoviredci)
čuvaj !trimmed.isEmpty inače { vratiti }
notes.insert(obrezano, na: 0)
napomenaTekst = ""
}
private func deleteNote(at offsets: IndexSet) {
notes.remove(atOffsets: pomaci)
}
}
"`
-
5. Važno objašnjenje koda
Neki ključni koncepti koje treba razumjeti:
– @State : Digunakan untuk menyimpan data yang akan berubah dan memicu UI untuk ikut diperbarui.
– `noteText` pohranjuje uneseni tekst.
– `notes` pohranjuje popis bilješki.
– TextField : Komponen input teks.
Povezivanje `text: $noteText` znači da je TextField izravno povezano sa stanjem `noteText`.
– Button(action:) : Tombol untuk menjalankan fungsi `addNote()`.
– List + ForEach : Menampilkan data dalam bentuk daftar.
`id: \.self` se koristi jer je stavka jedinstveni niz znakova (za jednostavan primjer).
– onDelete : Memungkinkan penghapusan item dari list dengan gesture swipe.
-
6. Pokretanje aplikacije u simulatoru
Za pokretanje aplikacije:
1. Di bagian atas Xcode, pilih target device misalnya iPhone 15 (Simulator).
2. Klik tombol Run (ikon segitiga ▶).
3. Simulator će se otvoriti, a zatim će se aplikacija automatski pokrenuti.
Pokušajte upisati bilješku, pritisnuti gumb "Dodaj bilješku" i vidjeti će se na popisu. Povucite bilo koju stavku ulijevo da biste je izbrisali.
-
7. Jednostavno otklanjanje pogrešaka
Kada aplikacija ne radi kako se očekuje, možete:
– Melihat panel Debug Console di bawah Xcode untuk error log.
– Dodan je `print()` za provjeru vrijednosti varijabli:
“`brzo
print(“Dodana napomena:”, skraćeno)
"`
Osim toga, Xcode nudi značajku prekidne točke za zaustavljanje programa u određenom retku kako biste mogli pregledati sadržaj varijabli.
-
8. Poboljšanje aplikacija: Validacija i pohrana podataka
Gornja aplikacija i dalje privremeno pohranjuje bilješke (one će nestati kada se aplikacija zatvori). Za sljedeću fazu razvoja možete dodati:
1. Penyimpanan Lokal (UserDefaults)
Spremi niz bilješki u UserDefaults kako bi se održale nakon zatvaranja aplikacije.
2. Database (Core Data/SQLite)
Pogodno za složenije podatke.
3. Fitur Edit Catatan
Izradite detaljni prikaz za izmjenu zapisa.
4. UI yang Lebih Menarik
Dodajte ikone, boje i čišći raspored.
Kao jednostavan korak, možete započeti spremanjem zapisa u `UserDefaults` pomoću `JSONEncoder` i `JSONDecoder`.
-
9. Zaključak
Swift i SwiftUI pružaju moderan i brz način izrade iOS aplikacija. U ovom vodiču naučili ste kako stvoriti novi iOS projekt, razumjeti osnovnu strukturu SwiftUI aplikacije, izraditi jednostavno korisničko sučelje s tekstualnim poljima (TextFields), gumbima (Buttons) i popisima (Lists) te pokrenuti aplikaciju u simulatoru. Iako je aplikacija još uvijek jednostavna, ovaj temelj je ključan za prelazak na složenije značajke poput pohrane podataka, navigacije stranicama i integracije API-ja.
Ako želite, mogu vam pomoći i u izradi naprednijih verzija ovog vodiča, kao što je dodavanje trajne pohrane pomoću UserDefaults/Core Data, izrada stranice s detaljima pomoću NavigationStacka ili izrada aplikacije koja dohvaća podatke s interneta pomoću URLSessiona.