Universitas Kebudayaan Digital Makassar

Universitas Kebudayaan Digital Makassar (UKDMKS) memadukan inovasi teknologi digital dengan pelestarian budaya lokal. Bergabunglah untuk membangun masa depan berbasis budaya dan teknologi!

dart flutter

Belajar Membuat Aplikasi Tempat Wisata Dengan Flutter : Bagian Pertama

Pada kelas ini kita akan mengembangkan sebuah aplikasi yang menampilkan tempat-tempat wisata di Bandung. Hasil akhir dari keseluruhan codelab akan seperti berikut:

20200615121748f245aa145cd45735beec15d01c668973.gif
Dalam codelab pertama ini kita akan membuat sebuah tampilan yang menggabungkan semua widget-widget yang sebelumnya kita pelajari. Tampilannya adalah seperti berikut:
20200615121827165d0d3dbc66abb53953f94920a0d28d.jpeg
Sebelum kita membuat tampilan di atas, kita akan bedah terlebih dahulu layout-nya.
Pada layout di atas kita dapat memetakan widget-widget dalam bentuk diagram seperti di bawah ini:
20200615123022ba51f3071b1abe12d3704a7ce5db8b4d.png
  1. Buat project Flutter baru dan berikan nama yang sesuai, misalnya wisata_bandung. Hapus kode aplikasi counter yang diberikan ketika project dibuat.
  2. Tuliskan kode dasar yang menampilkan widget MaterialAppseperti berikut:


    1. import 'package:flutter/material.dart';

    2.  

    3. void main() => runApp(MyApp());

    4.  

    5. class MyApp extends StatelessWidget {

    6.   @override

    7.   Widget build(BuildContext context) {

    8.     return MaterialApp(

    9.       title: 'Wisata Bandung',

    10.       theme: ThemeData.dark(),

    11.     );

    12.   }

    13. }


    Di sini karena aplikasi kita akan bernuansa gelap maka kita akan menggunakan tema dark yang bisa diatur melalui parameter theme pada MaterialApp.

  3. Lalu kita akan membuat kode untuk susunan widget sesuai diagram yang telah kita buat. Untuk membuat kode kita lebih rapi kita akan membuat kelas Stateless Widget baru untuk menampung kode tampilan kita. Mari namakan kelas ini DetailScreen.


    1. class DetailScreen extends StatelessWidget {

    2.   @override

    3.   Widget build(BuildContext context) {

    4.     return Scaffold();

    5.   }

    6. }


    Jangan lupa untuk menambahkan widget DetailScreen sebagai home dari MaterialApp.


    1. class MyApp extends StatelessWidget {

    2.   @override

    3.   Widget build(BuildContext context) {

    4.     return MaterialApp(

    5.       title: 'Wisata Bandung',

    6.       theme: ThemeData.dark(),

    7.       home: DetailScreen(),

    8.     );

    9.   }

    10. }


  4. Sesuai diagram di atas, kita akan menyusun beberapa widget secara vertikal sehingga kita perlu menggunakan widget Column.


    1. class DetailScreen extends StatelessWidget {

    2. @override

    3. Widget build(BuildContext context) {

    4. return Scaffold(

    5. body: Column(),

    6. );

    7. }

    8. }


    Jalankan aplikasi Anda. Saat ini device atau emulator Anda memang masih belum menampilkan apa pun. Namun, kita akan memanfaatkan fitur hot reload untuk melihat perubahan-perubahan yang akan kita lakukan ke depan.

  5. Komponen pertama yang akan kita buat adalah bagian judul dari halaman. Tentunya untuk menampilkan teks kita akan menggunakan widget Text.


    1. class DetailScreen extends StatelessWidget {

    2.   @override

    3.   Widget build(BuildContext context) {

    4.     return Scaffold(

    5.       body: Column(

    6.         children: <Widget>[

    7.           Text('Farm House Lembang'),

    8.         ],

    9.       ),

    10.     );

    11.   }

    12. }


  6. Ketika Anda menyimpan project atau menjalankan hot reload, tampilan aplikasi Anda sekarang mungkin tidak sesuai dengan keinginan, seperti teks terlalu ke atas dan juga terlalu kecil.
    20200615124340172d85b2242b0f3f00c5d5ae5041780d.jpegUntuk itulah kita perlu membungkus widget Text ke dalam Container supaya kita dapat memberikan property seperti margin atau padding. Jika Anda menggunakan IDE Android Studio, Anda dapat memanfaatkan shortcut Alt+Enter untuk membungkus widget ke widget lain.
    2020061512453519e1a1484079e4702ecc3157a8bd027a.gif
  7.  Tambahkan margin atas supaya teks memiliki jarak terhadap bagian atas layar.


    1. class DetailScreen extends StatelessWidget {

    2.   @override

    3.   Widget build(BuildContext context) {

    4.     return Scaffold(

    5.       body: Column(

    6.         children: <Widget>[

    7.           Container(

    8.             margin: EdgeInsets.only(top: 16.0),

    9.             child: Text('Farm House Lembang'),

    10.           ),

    11.         ],

    12.       ),

    13.     );

    14.   }

    15. }


    Pada kode di atas kita hanya memberikan margin atas sebesar sebesar 16.0. Anda dapat memanfaatkan metode EdgeInsets lain seperti all() untuk memberikan margin ke semua sisi atau symmetric() apabila Anda ingin memberikan margin ke sisi vertikal atau horizontal.

  8. Selanjutnya, sesuai contoh kita akan membuat teks judul berada di tengah. Tambahkan parameter atau properti textAlign pada widget Text.


    1. Container(

    2.   margin: EdgeInsets.only(top: 16.0),

    3.   child: Text(

    4.     'Farm House Lembang',

    5.     textAlign: TextAlign.center,

    6.     style: TextStyle(

    7.       fontSize: 30.0,

    8.       fontWeight: FontWeight.bold,

    9.     ),

    10.   ),

    11. ),


    Lakukan hot reload. Tidak ada perubahan, apa sebabnya? Jika menggunakan Android Studio Anda dapat memanfaatkan fitur Flutter Inspector untuk melihat layout widget di dalam aplikasi.
    20200615125054a5f5b58100cf7d53bf198189fee86331.gifDari gambar di atas bisa kita lihat ternyata layout aplikasi kita tidak penuh hingga seluruh halaman. Ini disebabkan sisi horizontal dari Column hanya menyesuaikan dengan konten yang ada di dalamnya. Untuk memaksimalkan ukuran lebar dari Column, tambahkan kode berikut:


    1. body: Column(

    2.   crossAxisAlignment: CrossAxisAlignment.stretch,

    3.   children: <Widget>[

    4.     Container(

    5.       margin: EdgeInsets.only(top: 16.0),

    6.       child: Text(

    7.         'Farm House Lembang',

    8.         textAlign: TextAlign.center,

    9.         style: TextStyle(

    10.           fontSize: 30.0,

    11.           fontWeight: FontWeight.bold,

    12.         ),

    13.       ),

    14.     ),

    15.   ],

    16. ),


    Parameter crossAxisAlignment berguna untuk mengatur alignment horizontal dari Column. Selain itu Column juga memiliki parameter mainAxisAlignment yang berfungsi untuk mengatur alignment secara vertikal (alignment utama). Kedua parameter ini juga berlaku sebaliknya untuk widget Row.

  9. Setelah menyelesaikan judul, selanjutnya kita akan membuat bagian kedua yaitu informasi dari tempat wisata.
    20200615125238eac9289b2ae5fac7507ccb55f1de4836.jpegSeperti yang terlihat kita perlu menyusun widget secara horizontal dan vertikal. Mari tambahkan child kedua dari Column dengan sebuah Container berisi Row. Tambahkan juga margin pada sisi atas dan bawah untuk memberikan jarak antar widget.


    1. class DetailScreen extends StatelessWidget {  @override

    2. Widget build(BuildContext context) {

    3. return Scaffold(

    4. body: Column(

    5. crossAxisAlignment: CrossAxisAlignment.stretch,

    6. children: <Widget>[

    7. Container(...),

    8. Container(

    9. margin: EdgeInsets.symmetric(vertical: 16.0),

    10. child: Row(

    11. children: <Widget>[],

    12. ),

    13. ),

    14. ],

    15. ),

    16. );

    17. }

    18. }


  10. Buat widget Column untuk menyusun Icon dan Text.
  1. class DetailScreen extends StatelessWidget {
  2. @override
  3. Widget build(BuildContext context) {
  4. return Scaffold(
  5. body: Column(
  6. crossAxisAlignment: CrossAxisAlignment.stretch,
  7. children: <Widget>[
  8. Container(…),
  9. Container( margin: EdgeInsets.symmetric(vertical: 16.0),
  10. child: Row(
  11. children: <Widget>[
  12. Column(
  13. children: <Widget>[
  14. Icon(Icons.calendar_today),
  15. Text(‘Open Everyday’),
  16. ],
  17. ),
  18. ],
  19. ),
  20. ),
  21. ],
  22. ),
  23. );
  24. }
  25. }


  1. Jika Anda merasa jarak antara Icon dan Text terlalu rapat, Anda dapat menambahkan widget SizedBoxuntuk membuat “kotak” yang berguna untuk memberikan jarak.


    1. Column(

    2.   children: <Widget>[

    3.     Icon(Icons.calendar_today),

    4.     SizedBox(height: 8.0),

    5.     Text('Open Everyday'),

    6.   ],

    7. ),


  2. Selanjutnya sebagai tantangan, lengkapilah informasi tempat wisata dengan pasangan ikon dan teks sesuai contoh yang diberikan.
    20200615125536dbfa947fd7f7a0714c39be44b8e3e275.jpeg
  3. Jika hanya membuat 3 Column di dalam Row, maka tampilan widget Anda akan berurutan di sisi kiri layar seperti berikut:
    2020061512560551b5227fcc6ee0237e02ed2efd67f839.jpegBagaimana membuatnya menjadi lebih rapi? Jawabannya adalah mainAxisAlignment. Tambahkan MainAxisAlignment.spaceEvenlysebagai parameter untuk membuat masing-masing child di dalam Row memiliki jarak yang sama.
  1. class DetailScreen extends StatelessWidget {
  2.   @override
  3.   Widget build(BuildContext context) {
  4.     return Scaffold(
  5.       body: Column(
  6.         crossAxisAlignment: CrossAxisAlignment.stretch,
  7.         children: <Widget>[
  8.           Container(…),
  9.           Container(
  10.             margin: EdgeInsets.symmetric(vertical: 16.0),
  11.             child: Row(
  12.               mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  13.               children: <Widget>[
  14.                 Column(…),
  15.                 Column(…),
  16.                 Column(…),
  17.               ],
  18.             ),
  19.           ),
  20.         ],
  21.       ),
  22.     );
  23.   }
  24. }


  1. Pada langkah ini harusnya Anda sudah bisa menampilkan teks deskripsi sesuai langkah yang diberikan sebelumnya. Anda cukup menambahkan widget Container dan Textuntuk menampilkan konten deskripsi. Anda juga dapat menambahkan style sesuai selera Anda.


    1. Container(

    2.   padding: EdgeInsets.all(16.0),

    3.   child: Text(

    4.     'Berada di jalur utama Bandung-Lembang, Farm House menjadi objek wisata yang tidak pernah sepi pengunjung. Selain karena letaknya strategis, kawasan ini juga menghadirkan nuansa wisata khas Eropa. Semua itu diterapkan dalam bentuk spot swafoto Instagramable.',

    5.     textAlign: TextAlign.center,

    6.     style: TextStyle(fontSize: 16.0),

    7.   ),

    8. ),


  2. Terakhir, kita ingin mengubah background aplikasi menjadi warna hitam. Untuk mengubah warna background, gunakan parameter yang ada pada widget Scaffold.


    1. class DetailScreen extends StatelessWidget {

    2.   @override

    3.   Widget build(BuildContext context) {

    4.     return Scaffold(

    5.       backgroundColor: Colors.black,

    6.       body: Column(...),

    7.     );

    8.   }

    9. }




  3. Keseluruhan kode Anda akan seperti berikut
  1. import ‘package:flutter/material.dart’;
  2.  
  3. void main() => runApp(MyApp());
  4.  
  5. class MyApp extends StatelessWidget {
  6.   @override
  7.   Widget build(BuildContext context) {
  8.     return MaterialApp(
  9.       title: ‘Wisata Bandung’,
  10.       theme: ThemeData.dark(),
  11.       home: DetailScreen(),
  12.     );
  13.   }
  14. }
  15.  
  16. class DetailScreen extends StatelessWidget {
  17.   @override
  18.   Widget build(BuildContext context) {
  19.     return Scaffold(
  20.       backgroundColor: Colors.black,
  21.       body: Column(
  22.         crossAxisAlignment: CrossAxisAlignment.stretch,
  23.         children: <Widget>[
  24.           Container(
  25.             margin: EdgeInsets.only(top: 16.0),
  26.             child: Text(
  27.               ‘Farm House Lembang’,
  28.               textAlign: TextAlign.center,
  29.               style: TextStyle(
  30.                 fontSize: 30.0,
  31.                 fontWeight: FontWeight.bold,
  32.               ),
  33.             ),
  34.           ),
  35.           Container(
  36.             margin: EdgeInsets.symmetric(vertical: 16.0),
  37.             child: Row(
  38.               mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  39.               children: <Widget>[
  40.                 Column(
  41.                   children: <Widget>[
  42.                     Icon(Icons.calendar_today),
  43.                     SizedBox(height: 8.0),
  44.                     Text(‘Open Everyday’),
  45.                   ],
  46.                 ),
  47.                 Column(
  48.                   children: <Widget>[
  49.                     Icon(Icons.access_time),
  50.                     SizedBox(height: 8.0),
  51.                     Text(’09:00 – 20:00′),
  52.                   ],
  53.                 ),
  54.                 Column(
  55.                   children: <Widget>[
  56.                     Icon(Icons.monetization_on),
  57.                     SizedBox(height: 8.0),
  58.                     Text(‘Rp 25.000’),
  59.                   ],
  60.                 ),
  61.               ],
  62.             ),
  63.           ),
  64.           Container(
  65.             padding: EdgeInsets.all(16.0),
  66.             child: Text(
  67.               ‘Berada di jalur utama Bandung-Lembang, Farm House menjadi objek wisata yang tidak pernah sepi pengunjung. Selain karena letaknya strategis, kawasan ini juga menghadirkan nuansa wisata khas Eropa. Semua itu diterapkan dalam bentuk spot swafoto Instagramable.’,
  68.               textAlign: TextAlign.center,
  69.               style: TextStyle(fontSize: 16.0),
  70.             ),
  71.           ),
  72.         ],
  73.       ),
  74.     );
  75.   }
  76. }


Anda juga dapat mengunduh keseluruhan kodenya pada tautan berikut: https://github.com/dicodingacademy/a159-flutter-pemula-labs

Asalas | Unlock Anime, Manhwa & Donghua Like Never BeforeFinasteriden: Unlock the Secrets of the Movie World!Marians Woman: Celebrating Beauty Around the WorldArheon - Unveiling the Secrets of Food & Origins WorldwideMPAPER The Ultimate Destination for Anime & Manga FansANMC21: Your Guide to Smarter Living and SuccessMV Agusta of Tampa: Your Automotive News HubTech and Play: Your Hub for Technology, Gaming, and GadgetsRebeccaSommer : Stories & Cultures from Around the WorldUETRABAJANDOJUNTOS - Inside the Music World’s Best-Kept SecretsVandelay Armor - Viral News and Global UpdatesGainesville Sun: Technology & Computers UnveiledGRFX Gaming Party Bus: Journey Through Gaming ErasHouse of Beauty: Celebrating the World's Most Beautiful WomenLearn Mistake: Wisdom for a Better LifeSports Hope Alive: Portal Olahraga DuniaWorld News TW - The Hottest Viral News & Global HeadlinesWriter Sujatha - Life Lessons & Struggles That Inspirehttps://128.199.185.186/https://143.198.89.74/https://165.227.47.178/https://170.64.208.214/https://170.64.192.239/https://46.101.102.216/LVONLINEtelegram lvonlinehttps://www.thecarbongenie.com/https://www.aievea-bijou.com/https://www.slashpolicy.com/https://www.benwestbeech.com/https://www.hh-bags.com/https://www.drupalforfacebook.org/https://www.lvonline.boats/https://www.lvoslot.com/https://www.lvobet.id/https://www.lvoslot.id/https://www.lvonline000.com/https://www.lvonline001.com/https://www.lvonline002.com/https://www.lvonline003.com/https://www.lvonline004.com/https://www.lvonline005.com/https://www.lvonline006.com/https://www.lvonline007.com/https://www.lvonline008.com/https://www.lvonline009.com/https://www.lvonline010.com/https://www.lvonlinepoker.com/https://www.lvonlinebola.com/https://www.lvonlinekasino.com/https://www.lvonline.io/https://www.lvonline.store/https://www.lvonline.online/https://www.situslvonline.us/situs bandar lvonlinehttps://146.190.97.83/https://143.198.209.134/https://188.166.246.204/https://167.172.83.179/https://togelhok.tv/https://www.togelhok.id/https://earthtoweb.com/https://www.elearningfacultymodules.org/https://www.how6youtoknowc.org/https://128.199.71.129/https://167.172.64.185/https://152.42.192.250/https://www.capcut88.com/https://www.capcut88.co/https://towsonsmiles.com/https://www.campur88.com/https://www.campur88.org/https://www.campur88.work/https://www.campur88.xyz/https://www.campur88.lol/https://www.nagacampur.biz/https://www.nagacampur.club/https://www.nagacampur.co/https://www.nagacampur.me/https://www.nagacampur.xyz/https://www.nasicampur88.com/https://165.232.175.185/https://152.42.164.228/https://152.42.194.203/https://152.42.169.214/https://www.campurslot.com/https://www.campurslot.id/https://www.campurslot.co/https://www.campurslot.org/https://www.campurslot.homes/https://www.campurslot.design/Badan Lembaga Pendidikan Ilmu Komputer SubangUniversitas Negeri JeparaLembaga Universitas Kristen MaranthaSMP 3 Negri Nganjukhttps://iklanmalay.com/https://promobola.comhttps://kapsychologists.comhttps://propertycloudsite.comSattar777 NewsVR Slot Online NewsRuby888 Online Slot NewsBerita Global Klik Agenslot228Agen Sloto SG777 NewsGold Club SlotOnline NewsAzar Marra Kech NewsBerita Sidney dan MancanegaraBerita Seputar Sumsel dan DuniaBerita Rehabilitasi Judi OnlineBerita Link Gacor TerupdateItalian Tuition News UpdateWPJS Online NewsBerita Agen Slot RoyalThai Slot Online NewsAll Online Game NewsOnline Game News UpdateAsian Lotre NewsBerita Demo Dana SlotBerita Kalbar ProvLocanda della Maria NewsWye Valley NewsBerita Agen Slot1004Berita Agen Slot33Agen Slot399 NewsPlayboy Slot Online NewsSlot Online BB Slot NewsSlot Online 911 News365 Slot Online NewsEat Atlah Newsambamali canadaInfo Seputar Sepakbolacentre thoughtBerita Hiburanopen etherpadras indo groupresistance manualPrediksi Shiowe want real newsthe poisoned pawnindonesia reclaimed teakswift kennedy and copullip passionmy passion foraim torontoPublic FlashesFriweb TeknologiIngenious Gamersthe late show gardensGishPuppy Newsslot danaOregon Farm Garden NewsViral Pulse GlobaljumpajpPromo Bola soccer Captivates The WorldKapsychologists World First The Science of Mental Health - Understanding Psychiatry: The Science of Mental HealthPropertyCloudSite How to Make Smarter Investments in Today’s MarketArnavichara Ultimate Guide Right Business SoftwareAuscare Disability A Comprehensive Guide to Retirement Homes Finding the Perfect Place to Enjoy Your Golden YearsSeries Mp4 The Future of Entertainment Streaming and Downloadable Video ExplainedAlogirlxinh How to Create a Successful Personal Page or Blog in 2024ihokibethttps://bengbulang-karangpucung.cilacapkab.go.id/https://comunicacion.unsa.edu.ar/https://seychellesbiodiversitychm.sc/https://www.925lms.com/https://www.guisseny.memoire.bzh/https://www.mobiliars.org/https://www.squashparkwieliczka.pl/
Asalas | Unlock Anime, Manhwa & Donghua Like Never BeforeFinasteriden: Unlock the Secrets of the Movie World!Marians Woman: Celebrating Beauty Around the WorldArheon - Unveiling the Secrets of Food & Origins WorldwideMPAPER The Ultimate Destination for Anime & Manga FansANMC21: Your Guide to Smarter Living and SuccessMV Agusta of Tampa: Your Automotive News HubTech and Play: Your Hub for Technology, Gaming, and GadgetsRebeccaSommer : Stories & Cultures from Around the WorldUETRABAJANDOJUNTOS - Inside the Music World’s Best-Kept SecretsVandelay Armor - Viral News and Global UpdatesGainesville Sun: Technology & Computers UnveiledGRFX Gaming Party Bus: Journey Through Gaming ErasHouse of Beauty: Celebrating the World's Most Beautiful WomenLearn Mistake: Wisdom for a Better LifeSports Hope Alive: Portal Olahraga DuniaWorld News TW - The Hottest Viral News & Global HeadlinesWriter Sujatha - Life Lessons & Struggles That Inspirehttps://128.199.185.186/https://143.198.89.74/https://165.227.47.178/https://170.64.208.214/https://170.64.192.239/https://46.101.102.216/LVONLINEtelegram lvonlinehttps://www.thecarbongenie.com/https://www.aievea-bijou.com/https://www.slashpolicy.com/https://www.benwestbeech.com/https://www.hh-bags.com/https://www.lvonline.boats/https://www.lvoslot.com/https://www.lvobet.id/https://www.lvoslot.id/https://www.lvonline000.com/https://www.lvonline001.com/https://www.lvonline002.com/https://www.lvonline003.com/https://www.lvonline004.com/https://www.lvonline005.com/https://www.lvonline006.com/https://www.lvonline007.com/https://www.lvonline008.com/https://www.lvonline009.com/https://www.lvonline010.com/https://www.lvonlinepoker.com/https://www.lvonlinebola.com/https://www.lvonlinekasino.com/https://www.lvonline.io/https://www.lvonline.store/https://www.lvonline.online/https://www.situslvonline.us/situs bandar lvonlinehttps://146.190.97.83/https://143.198.209.134/https://188.166.246.204/https://167.172.83.179/https://togelhok.tv/https://www.togelhok.id/https://earthtoweb.com/https://www.elearningfacultymodules.org/https://www.how6youtoknowc.org/https://128.199.71.129/https://167.172.64.185/https://152.42.192.250/https://www.capcut88.com/https://www.capcut88.co/https://towsonsmiles.com/https://www.campur88.com/https://www.campur88.org/https://www.campur88.work/https://www.campur88.xyz/https://www.campur88.lol/https://www.nagacampur.biz/https://www.nagacampur.club/https://www.nagacampur.co/https://www.nagacampur.me/https://www.nagacampur.xyz/https://www.nasicampur88.com/https://165.232.175.185/https://152.42.164.228/https://152.42.194.203/https://152.42.169.214/https://www.campurslot.com/https://www.campurslot.id/https://www.campurslot.co/https://www.campurslot.org/https://www.campurslot.homes/https://www.campurslot.design/Badan Lembaga Pendidikan Ilmu Komputer SubangUniversitas Negeri JeparaLembaga Universitas Kristen MaranthaSMP 3 Negri Nganjukhttps://iklanmalay.com/https://promobola.comhttps://kapsychologists.comhttps://propertycloudsite.comSattar777 NewsVR Slot Online NewsRuby888 Online Slot NewsBerita Global Klik Agenslot228Agen Sloto SG777 NewsGold Club SlotOnline NewsAzar Marra Kech NewsBerita Sidney dan MancanegaraBerita Seputar Sumsel dan DuniaBerita Rehabilitasi Judi OnlineBerita Link Gacor TerupdateItalian Tuition News UpdateWPJS Online NewsBerita Agen Slot RoyalThai Slot Online NewsAll Online Game NewsOnline Game News UpdateAsian Lotre NewsBerita Demo Dana SlotBerita Kalbar ProvLocanda della Maria NewsWye Valley NewsBerita Agen Slot1004Berita Agen Slot33Agen Slot399 NewsPlayboy Slot Online NewsSlot Online BB Slot NewsSlot Online 911 News365 Slot Online NewsEat Atlah Newsambamali canadaInfo Seputar Sepakbolacentre thoughtBerita Hiburanopen etherpadras indo groupresistance manualPrediksi Shiowe want real newsthe poisoned pawnindonesia reclaimed teakswift kennedy and copullip passionmy passion foraim torontoPublic FlashesFriweb TeknologiIngenious Gamersthe late show gardensGishPuppy Newsslot danaOregon Farm Garden NewsViral Pulse GlobaljumpajpPromo Bola soccer Captivates The WorldKapsychologists World First The Science of Mental Health - Understanding Psychiatry: The Science of Mental HealthPropertyCloudSite How to Make Smarter Investments in Today’s MarketArnavichara Ultimate Guide Right Business SoftwareAuscare Disability A Comprehensive Guide to Retirement Homes Finding the Perfect Place to Enjoy Your Golden YearsSeries Mp4 The Future of Entertainment Streaming and Downloadable Video ExplainedAlogirlxinh How to Create a Successful Personal Page or Blog in 2024ihokibethttps://bengbulang-karangpucung.cilacapkab.go.id/https://comunicacion.unsa.edu.ar/https://seychellesbiodiversitychm.sc/https://www.925lms.com/https://www.guisseny.memoire.bzh/https://www.mobiliars.org/https://www.squashparkwieliczka.pl/https://mok.edu.kz/https://www.mware.cloud/https://www.facilitiescoolingandheating.com.au/https://www.krillpay.ng/https://925worksuite.com/