Langsung ke konten utama

User Interface pada Xamarin Form

Application Lifecycle pada Xamarin Forms 
Xamarin Forms mempunyai application lifecycle yang sederhana. Ada tiga method utama yang digunakan untuk menangani method lifecycle, ketiga proses tersebut adalah: 
  • OnStart: method ini akan dipanggil ketika aplikasi pertama kali dijalankan. 
  • OnSleep: method ini akan dipanggil setiap kali app berpindah ke mode background 
  • OnResume: method ini akan dipanggil ketika app masuk ke mode resume setelah sebelumnya masuk ke mode background. 
Ketika pengguna memilih tombol Back atau Home pada ponsel, maka aplikasi yang sedang aktif pada saat itu akan masuk ke mode background. Ketika pengguna memilih kembali aplikasi tersebut, maka app tersebut di resume dan app tersebut dibawa kembali ke mode foreground. Saat ketika aplikasi dijalankan pertama kali, saat app masuk ke mode background dan masuk ke mode foreground lagi, sampai app tersebut ditutup (terminate). 

Xamarin Forms UI (User Interface) 
Ada tiga komponen utama yang membentuk Xamarin Forms UI yaitu: 
  • Page: Halaman yang digunakan untuk menampilkan view yang disusun menggunakan layout. 
  • Views: komponen kontrol yang ada pada Xamarin Forms seperti Entry, Button, dll. 
  • Layout: komponen yang digunakan untuk mengatur posisi views pada halaman.
Image
Page 
Class Page adalah kontainer utama untuk setiap tampilan pada halaman aplikasi di Xamarin Forms. Class ini diturunkan dari class Xamarin.Forms.VisualElement. Class Page adalah baseclass untuk membuat dari semua class UI pada Xamarin Forms. Berikut adalah beberapa contoh Page yang umum digunakan: 
  • ContentPage 
  • MasterDetailPage 
  • NavigationPage 
  • TabbedPage 
  • CarouselPage 
  
View 
View adalah kontrol interaktif yang ada pada Page. Berikut ini adalah jenis-jenis view yang ada pada Xamarin Forms. 
  • Basic – fundamental views 
    • Label 
    • Image 
    • Button 
    • BoxView 
  • List – scrollabe dan selectable list 
    • ListView 
  • Text Entry – entry input pengguna menggunakan keyboard 
    • Entry 
    • Editor 
  • Selection – pilihan pengguna yang lebih dari satu. 
    • Picker 
    • DatePicker 
    • TimePicker 
    • Stepper 
    • Slider 
    • Switch 
  • User Feedback – notifikasi pengguna  
    • Activity 

Layout 
Layout adalah wadah yang digunakan untuk pengaturan posisi kontrol (view, atau layout lain). Ada beberapa macam layout yang didukung oleh Xamarin Form yaitu: 
  • StackLayout: mengatur kontrol secara horisontal atau vertikal. 
  • AbsoluteLayout: pengaturan posisi berdasarkan letak yang pasti. 
  • RelativeLayout: pengaturan posisi kontrol berdasarkan kontrol yang lain. 
  • Grid: membuat layout yang terdiri dari kolom dan baris seperti tabel. 

Practice #2.1 Penggunaan StackLayout 

Pada contoh dibawah ini akan ditunjukan bagaimana cara menggunakan StackLayout untuk mengatur view.  
1. Pada portable project di Modul2, tambahkan forms xaml page baru dengan nama SampleStackLayout.xaml. Kemudian tambahkan kode xaml berikut:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Modul2.SampleStackLayout">    <StackLayout>
      <Label Text="Posisi Start atau flush left" HorizontalOptions="Start"/>
    <StackLayout Spacing="0">       <Label Text="Posisi Center" HorizontalOptions="Center"/>
    <StackLayout Spacing="0" Orientation="Horizontal">
      <Label Text="Posisi End atau flush right" HorizontalOptions="End"/>     </StackLayout>       <Label Text="Posisi Start" HorizontalOptions="Start"/>
</ContentPage> 
      <Label Text="Posisi Center" HorizontalOptions="CenterAndExpand"/>       <Label Text="Posisi End" HorizontalOptions="End"/>     </StackLayout>
  </StackLayout>
2. Pada file App.xaml.cs tambahkan kode berikut untuk menjalankan halaman ini pada saat program pertama kali dijalankan. 
        public App()
        {
            InitializeComponent();
 
            MainPage = new SampleStackLayout();
        } 
3. Hasilnya dapat dilihat pada gambar dibawah ini. 
Image

Practice #2.2 Contoh Penggunaan Absolute Layout 

Pada contoh dibawah ini akan ditunjukan cara untuk menggunakan Absoule Layout. 
1. Pada project portable, tambahkan xaml page baru dengan nama AbsoluteLayout.xaml. kemudian tambahkan kode xaml berikut: 
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Bab2XamarinForm.AbsoluteLayout">
    <Label Text="I'm centered on iPhone 4 but no other device"
  <AbsoluteLayout>
        AbsoluteLayout.LayoutBounds="115,150,100,100" LineBreakMode="WordWrap"  />
    <Label Text="I'm bottom center on every device."
        LineBreakMode="WordWrap"  />
        AbsoluteLayout.LayoutBounds=".5,1,.5,.1" AbsoluteLayout.LayoutFlags="All"
    <BoxView Color="Red" AbsoluteLayout.LayoutBounds="0,.5,25,100"
    <BoxView Color="Olive"  AbsoluteLayout.LayoutBounds="1,.5, 25, 100"         AbsoluteLayout.LayoutFlags="PositionProportional" />
        AbsoluteLayout.LayoutFlags="PositionProportional" />
        AbsoluteLayout.LayoutFlags="PositionProportional" />     <BoxView Color="Blue" AbsoluteLayout.LayoutBounds=".5,0,100,25"   </AbsoluteLayout>
</ContentPage> 
2. Pada file App.xaml.cs tambahkan kode berikut untuk menjalankan halaman ini pada saat program pertama kali dijalankan. 
        public App()
        {
            InitializeComponent();
            MainPage = new AbsoluteLayout();
        } 
3. Hasilnya dapat dilihat pada gambar berikut: 
Image

Practice #2.3 Menggunakan Relative Layout 

RelativeLayout dapat digunakan untuk memposisikan elemen menggunakan automatic scaling pada ukuran layar yang berbeda. Penggunaan layout ini memanfaatkan relasi antar view. Setiap view akan dapat diposisikan terhadap view sebelah/tetangganya. 
1. Pada project portable, tambahkan xaml page baru dengan nama RelativeLayout.xaml. Kemudian tambahkan kode xaml berikut: 
<RelativeLayout>
    <BoxView Color="Red" x:Name="redBox"
        RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent,
            Property=Height,Factor=.15,Constant=0}"
            Type=RelativeToParent,Property=Width,Factor=1,Constant=0}"
        RelativeLayout.WidthConstraint="{ConstraintExpression
            Type=RelativeToParent,Property=Height,Factor=.8,Constant=0}" />
        RelativeLayout.HeightConstraint="{ConstraintExpression     <BoxView Color="Blue"
            ElementName=redBox,Property=Y,Factor=1,Constant=50}"
        RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToView,         RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToView,
            Type=RelativeToView,ElementName=redBox, Property=Width,Factor=.5,Constant=0}"
            ElementName=redBox,Property=X,Factor=1,Constant=50}"         RelativeLayout.WidthConstraint="{ConstraintExpression         RelativeLayout.HeightConstraint="{ConstraintExpression
  </RelativeLayout> 
            Type=RelativeToView,ElementName=redBox, Property=Height,Factor=.5,Constant=0}" />
2. Pada file App.xaml.cs tambahkan kode berikut untuk menjalankan halaman ini pada saat program pertama kali dijalankan. 
        public App()
        {
            InitializeComponent();
            MainPage = new RelativeLayout();
        } 
3. Hasilnya akan dapat dilihat pada gambar berikut
Image

Practice #2.4 Menggunakan GridLayout 

Dengan menggunakan GridLayout, kita dapat memposisikan view berdasarkan alamat row dan kolom sama seperti ketika kita menggunakan spreadsheet di Microsoft Excel atau html table. 
1. Pada project portable, tambahkan xaml page baru dengan nama GridLayout.xaml. Kemudian tambahkan kode xaml berikut: 
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Modul2.GridLayout">   <Grid>
      <RowDefinition Height="*" />
    <Grid.RowDefinitions>       <RowDefinition Height="*" />
      <ColumnDefinition Width="*" />
    </Grid.RowDefinitions>     <Grid.ColumnDefinitions>
    <Label Text="Top Left" Grid.Row="0" Grid.Column="0" />
      <ColumnDefinition Width="*" />     </Grid.ColumnDefinitions>
    <Label Text="Bottom Left" Grid.Row="1" Grid.Column="0" />
    <Label Text="Top Right" Grid.Row="0" Grid.Column="1" />     <Label Text="Bottom Right" Grid.Row="1" Grid.Column="1" />
</ContentPage> 
  </Grid>
2. Pada file App.xaml.cs tambahkan kode berikut untuk menjalankan halaman ini pada saat program pertama kali dijalankan. 
        public App()
        {
            InitializeComponent();
            MainPage = new GridLayout();
        } 

Task #2.1 Menggunakan Layout dan View sederhana pada Xamarin Form 

1. Buat project Cross Platform dan pilih Blank Xaml App (Portable). Beri nama project tersebut Modul2
2. Pada portable project tambahkan kode berikut di MainPage.xaml. MainPage.xaml adalah halaman pertama yang dibuat ketika anda membuat project. Halaman ini juga adalah halaman yang akan dijalankan pertama kali ketika anda menjalankan aplikasi. 
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:Modul2"
  <ScrollView VerticalOptions="FillAndExpand">
             x:Class="Modul2.MainPage">     <StackLayout HeightRequest="1000">
      <Label x:Name="lblDetail" Text="Label ini digunakan untuk menampilkan detail"
      <Label Text="Practice 2.1"  FontSize="40" HorizontalOptions="Center"/>         FontSize="20" HorizontalOptions="CenterAndExpand"/>
      <Entry x:Name="entryHello" Placeholder="Username" VerticalOptions="Center"
      <Button x:Name="btnHello" Text="Hello Button" HorizontalOptions="Center"           VerticalOptions="Fill" />         Keyboard="Text"/>       <Image x:Name="helloImg" Source="icon.png" Aspect="AspectFit"
</ContentPage> 
        HorizontalOptions="Center" VerticalOptions="Fill"/>     </StackLayout>
  </ScrollView>
3. Kemudian pada file MainPage.xaml.cs tambahkan kode berikut untuk menambahkan event pada tombol klik. 
    public partial class MainPage : ContentPage
    {         public MainPage()         {
            btnHello.Clicked += BtnHello_Clicked;
            InitializeComponent();         }  
            lblDetail.Text = entryHello.Text;
        private void BtnHello_Clicked(object sender, EventArgs e)         {         }
    } 
4. Untuk menjalankan aplikasi pada platform Android, klik kanan pada project Droid kemudian pilih Set as StartUp Project
5. Tekan tombol Ctrl+F5 untuk menjalankan aplikasi pada emulator Android. Hasilnya dapat dilihat pada tampilan berikut: 
Image 

Task #2.2 Kalkulator Sederhana 

1. Pada project Modul2 yang sudah anda buat sebelumnya, klik kanan pada portable project – Add - New Item – pilih Forms Xaml Page – beri nama KalkulatorPage.xaml
Image 
2. Kemudian tambahkan desain xaml berikut pada halaman KalkulatorPage.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Modul2.KalkulatorPage">
    <Label Text="Masukan Bilangan 1 :" FontSize="Medium" />
  <StackLayout Orientation="Vertical">
    <Label Text="Masukan Bilangan 2 :" FontSize="Medium" />
    <Entry x:Name="entryBil1" Placeholder="masukan bilangan 1" Keyboard="Numeric" />
    <Label Text="Hasil :" FontSize="Medium" />
    <Entry x:Name="entryBil2" Placeholder="masukan bilangan 2" Keyboard="Numeric" />     <Entry x:Name="entryHasil" IsEnabled="false" />
      <Button x:Name="btnKali" Text="Kali" />
    <StackLayout Orientation="Horizontal">       <Button x:Name="btnTambah" Text="Tambah" />       <Button x:Name="btnKurang" Text="Kurang" />
</ContentPage> 
      <Button x:Name="btnBagi" Text="Bagi" />     </StackLayout>
  </StackLayout>
3. Tambahkan juga kode program C# pada file KalkulatorPage.xaml.cs
    public partial class KalkulatorPage : ContentPage
    {         public KalkulatorPage()         {
            btnTambah.Clicked += Btn_Clicked;
            InitializeComponent();               btnKurang.Clicked += Btn_Clicked;
            btnBagi.Clicked += Btn_Clicked;
            btnKali.Clicked += Btn_Clicked;         }           private void Btn_Clicked(object sender, EventArgs e)
                case "Tambah":
        {             double hasil = 0;             var myBtn = (Button)sender;             switch(myBtn.Text)             {
                case "Kurang":
                    hasil = Convert.ToDouble(entryBil1.Text) + Convert.ToDouble(entryBil2.Text);                     break;                     hasil = Convert.ToDouble(entryBil1.Text) - Convert.ToDouble(entryBil2.Text);
                    hasil = Convert.ToDouble(entryBil1.Text) / Convert.ToDouble(entryBil2.Text);
                    break;                 case "Kali":                     hasil = Convert.ToDouble(entryBil1.Text) * Convert.ToDouble(entryBil2.Text);                     break;                 case "Bagi":                     break;
    } 
            }             entryHasil.Text = hasil.ToString();
        }
4. Jalankan program diatas pada emulator dengan menekan tombol Ctrl+F5. Hasil dari program diatas dapat dilihat pada gambar berikut. 
Image 
4. Untuk membuat file .apk yang akan anda upload maka anda dapat mengikuti langkah sebagai berikut: 
a. Klik kanan pada project Droid, kemudian pilih Android Manifest, kemudian lengkapi informasi dari aplikasi anda. 
Image 
b. Pilih ‘Release’ pada solution configuration. 
Image 
c. Pada tampilan Android Options – Linker – pilih Sdk Assembly Only. Pengaturan ini bertujuan agar hanya file sdk yang diperlukan saja yang akan ditambahkan ke file .apk
Image 

Cara Membuat APK pada Xamarin Form versi sebelum November 2016 

1. Pada Visual Studio pilih menu tools – Android – Publish Android App 
Image 
2. Pilih Create New Key Store untuk membuat key baru. Beri nama mykeystore, dan masukan password. 
Image 
3. Kemudian isi informasi yang akan digunakan untuk signed aplikasi Android anda. Pilih tombol Next
Image 
4. Isikan alamat folder dimana anda akan menyimpan file .apk yang akan dihasilkan. Kemudian langkah terakhir tekan tombol Create
Image 
5. Buka folder dimana anda menyimpan file .apk yang sudah berhasil dibuat. 
Image 
6. Kompres file .apk yang sudah dihasilkan (modul2.modul2.Aligned.apk) kemudian upload file tersebut pada fitur upload yang sudah tersedia pada halaman ini untuk direview oleh tim penilai. 

Cara  Membuat APK pada Xamarin Form (versi baru) 

1. Klik kanan pada project Android, kemudian pilih Archive.
Image 
2. Setelah langkah ini dikerjakan maka Visual Studio akan menyiapkan semua file yang nanti akan dikompilasi menjadi file .apk
Image 
Image 
3. Setelah selesai pilih tombol Distribute untuk mendistribusikan .apk yang akan dibuat. Ada dua pilihan yaitu Ad Hoc dan Google Play. Pilih Ad Hoc untuk mendistribusikan .apk tanpa melalui google play. 
Image 
4. Anda akan diminta untuk membuat sertifikat Android Keystore, masukan data yang dibutuhkan seperti gambar dibawah ini, kemudian tekan tombol Create
Image 
5. Setelah proses signing identity pada aplikasi yang kita buat, pilih tombol Save As
Image 
6. Beri nama .apk tersebut, misalnya modul2.modul2 
Image 
7. Anda akan diminta untuk memasukan password yang sebelumnya sudah anda buat ketika membuat Android Keystore
Image 
8. Anda dapat melihat bahwa kita sudah berhasil membuat file .apk yang siap untuk didistribusikan. 
Image 

Komentar

Postingan populer dari blog ini

Mengapa Memilih Politeknik Caltex Riau?

Haloo.. sebelumnya saya sempat hiatus ngeblog (ngeblog??) karena belum bisa membagi waktu untuk menulis .  Teett  . Abaikan πŸ˜‚ Dan akhirnya menulis lagi . Horeeee πŸ™ŒπŸ™Œ  Sebelum kelupaan topik nih, tadi rencana mau ceritain alasan kenapa pilih PCR atau Politeknik Caltex Riau bukan ? Nahh.. saya mulai ya    Saya berasal dari SMA Swasta yang ada di kota Padangsidimpuan. SMA yang terkenal dengan grup yang jago basketnya  *bangga*. Namun belum pernah ada kegiatan sosialisasi tentang kampus ini ke sekolah saya (mulai dari sekolahnya dibangun), dan saya juga tidak tahu ada kampus ini πŸ˜– Trus kok bisa dapat infonya ? Dari mana ? Nah ini yang perlu dibangun dari diri kita, budaya kepo *pstt yang positif ya*. Jadi infonya didapat dari bapak tata usaha tercinta *yeeeee* dengan bertanya, "pak kampus mana saja yang bagus ya ?" (sekedar info : tata usaha dan guru-guru jaman sekarang update mengenai passing grade dan akreditasi kampus-kampus atau universitas yang...

Menampilkan Data pada List View

Binding Data yang bertipe List Of String  Mekanisme binding umum digunakan pada Xamarin Form. Binding adalah mengaitkan data yang ada pada data source (sumber data) ke kontrol tertentu. Ada dua macam jenis binding yaitu one-way binding dan two-way binding. One-way binding digunakan hanya untuk menampilkan data saja, sedangkan two-way binding digunakan untuk menampilkan dan mengedit data.  Practice #3.1 Menampilkan Data bertipe List Of String  1. Buat Xamarin  Cross Platform Portable solution  dengan nama  Modul3 . Kemudian pada project Portable tambahkan  halaman xaml baru (Form Xaml Page)  dengan nama  BindingListString.xaml , kemudian tambahkan kode berikut:  <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"              xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"             ...

Navigasi pada Xamarin Forms

Navigasi digunakan untuk memudahkan pengguna untuk berpindah antar halaman. Selain itu pada modul ini juga akan dibahas bagaimana cara untuk mengirimkan parameter antar halaman dan membuat berbagai macam model navigasi seperti menu, tabs, dan master pages.  Jenis-jenis Navigasi pada Xamarin Forms  Ada beberapa jenis navigasi yang dapat digunakan pada Xamarin Forms, beberapa diantaranya yaitu:  Hierarchical  Modal  Tabs  Master Pages  Practice #4.1 Menambahkan Navigasi Sederhana  Pada contoh yang pertama akan ditunjukan bagaimana cara untuk menggunakan navigasi, cara ini digunakan untuk memanggil halaman selanjutnya dari halaman pertama.  1. Buat  Solusi Xamarin Cross Platform Portable  dengan nama  Modul4 .  2. Pada project portable tambahkan halaman xaml baru dengan nama  NavigationPage1.xaml . Kemudian tambahkan kode xaml berikut.  <?xml version="1.0" en...