Introduction
Flutter merupakan sebuah SDK atau Software Development Kit yang dibuat
oleh google untuk mengembangkan aplikasi dengan desain yang menarik
untuk mobile, web, dan desktop.
Pada artikel ini, kita akan menambahkan fungsi di
aplikasi flutter yang sebelumnya sudah kita buat. Kita juga akan membuat halaman
kedua (disebut route) yang dapat dinavigasikan oleh pengguna. Terakhir, kita akan
dapat memodifikasi tema aplikasi (warnanya).
GIF animasi berikut menunjukkan bagaimana aplikasi yang sudah selesai akan bekerja.
2. Menyiapkan Lingkungan
Pengembangan Flutter
Jika teman-teman ada yang belum menyelesaikan bagian 1, lihat pada bagian ini
Menyiapkan Lingkungan Pengembangan Flutter, agar teman-teman dapat ikut
mengembangkan aplikasi pada artikel ini.
1. import 'package:flutter/material.dart';
2. import 'package:english_words/english_words.dart';
3.
4. void main() {
5. runApp(MyApp());
6. }
7.
9. @override
14. );
15. }
16. }
17.
19. @override
21. }
22.
26. @override
27. Widget build(BuildContext context) {
31. ),
33. );
34. }
35.
40. if (i.isOdd) {
42. }
43.
46. _suggestions.addAll(generateWordPairs().take(10));
47. }
49. });
50. }
51.
55. pair.asPascalCase,
57. ),
58. );
59. }
60. }
2. flutter:
3. sdk: flutter
4.
7. cupertino_icons: ^1.0.0
english_words: ^3.1.5
Performing Pub get juga otomatis menghasilkan file pubspec.lock dengan daftar
semua paket yang ditarik ke dalam project bersama nomor versinya.
5. ...
8. ...
13. pair.asPascalCase,
15. ),
20. );
Lakukan Hot Reload, seharusnya akan terlihat icon hati pada tiap
baris setelah pasangan kata namun belum dapat ditekan/blum interaktif.
Android iOS
5. Menambahkan Interactivity
Pada langkah ini, kita akan membuat icons hati dapat di-tap. Ketika pengguna
melakukan tap entri dalam daftar maka akan mengubah status favoritnya, pasangan
kata tersebut akan ditambahkan atau dihapus dari serangkaian daftar favorit yang telah
disimpan.
Untuk melakukan itu kita akan memodifikasi fungsi _buildRow . Jika entri kata telah
ditambahkan ke favorit, ketika melakukan tap lagi akan menghapusnya dari favorit. Saat
entri kata diketuk saat itulah fungsi _buildRow memanggil setState() untuk memberi
tahu framework bahwa status telah berubah.
3. return ListTile(
4. title: Text(
5. pair.asPascalCase,
6. style: _biggerFont,
7. ),
8. trailing: Icon(
11. ),
13. setState(() {
14. if (alreadySaved) {
15. _saved.remove(pair);
16. } else {
17. _saved.add(pair);
18. }
19. });
21. );
22. }
3. ...
4. @override
6. return Scaffold(
7. appBar: AppBar(
9. actions: [
11. ],
12. ),
14. );
15. }
16. ...
17. }
20. Navigator.of(context).push(
21. );
Navigator.of(context).push(
MaterialPageRoute<void>(
// NEW lines from here...
(WordPair pair) {
return ListTile(
title: Text(
pair.asPascalCase,
style: _biggerFont,
),
);
},
);
context: context,
tiles: tiles,
).toList();
return Scaffold(
appBar: AppBar(
);
}, // ...to here.
),
);
2. @override
4. return MaterialApp(
7. primaryColor: Colors.white,
8. ), // ... to here.
9. home: RandomWords(),
10. );
11. }
Referensi : https://codelabs.developers.google.com/