Xamarinを使用した連絡先アプリの構築 – 第1部
Xamarinは、C#を使用してクロスプラットフォームアプリを開発するための強力なツールです。このチュートリアルシリーズでは、Xamarinを利用して連絡先管理アプリを構築する方法を学びます。連絡先アプリは、ユーザーが自身の連絡先情報を管理するための基本的なアプリケーションです。第1部では、アプリケーションの基本的な設定と、連絡先データを表示するための準備を行います。

1. Xamarinプロジェクトの作成
まず、Visual Studioを使って新しいXamarinプロジェクトを作成します。これには、Xamarin.Formsを使用してUIを構築します。
-
Visual Studioを開く
Visual Studioを開き、新しいプロジェクトを作成します。「新しいプロジェクト」ダイアログが表示されたら、「Xamarin.Formsアプリ」を選択します。 -
プロジェクトの設定
プロジェクト名を「ContactsApp」とし、テンプレートとして「Blank App」を選択します。これで、アプリケーションのベースが作成されます。 -
ターゲットプラットフォームの選択
iOSとAndroidの両方をターゲットにする場合、各プラットフォームの設定を行います。これにより、1つのコードベースで両方のプラットフォームに対応したアプリを作成できます。
2. 必要なパッケージのインストール
Xamarin.Formsを使用するためには、いくつかのパッケージをインストールする必要があります。これには、連絡先情報を取得するためのライブラリも含まれます。
-
NuGetパッケージマネージャーを開く
Visual Studioで、ソリューションエクスプローラーから「Packages」を右クリックし、「NuGetパッケージの管理」を選択します。 -
必要なパッケージのインストール
「Xamarin.Essentials」と「Xamarin.Forms」をインストールします。これらのパッケージは、デバイスのネイティブ機能にアクセスするために必要です。Xamarin.Essentialsを使用すると、カメラや連絡先、GPSなどの機能に簡単にアクセスできます。
3. 連絡先データの取得
連絡先情報をアプリに表示するには、デバイスの連絡先ストレージにアクセスする必要があります。Xamarin.Essentialsには、このためのAPIがあります。
-
連絡先のパーミッションを要求
連絡先にアクセスするためには、ユーザーの許可が必要です。これを行うには、アプリの設定ファイルにパーミッションを追加する必要があります。以下のコードをAndroidとiOSの設定に追加します。-
Android
Androidの場合、AndroidManifest.xml
に以下のパーミッションを追加します。xml<uses-permission android:name="android.permission.READ_CONTACTS" />
-
iOS
iOSでは、Info.plist
に連絡先へのアクセス許可を追加します。xml<key>NSContactsUsageDescriptionkey> <string>このアプリは連絡先データにアクセスするための許可が必要です。string>
-
-
連絡先データの取得
Xamarin.EssentialsのContacts
クラスを使用して、連絡先データを取得します。以下は、連絡先を取得するための基本的なコードです。csharpusing Xamarin.Essentials; using System.Collections.Generic; public class ContactService { public async Task
- > GetContactsAsync()
{
(); try { var allContacts = await Contacts.GetAllAsync(); foreach (var contact in allContacts) { contacts.Add(contact); } } catch (Exception ex) { // エラーハンドリング Console.WriteLine($"エラー: {ex.Message}"); } return contacts; } }
4. UIの設計
連絡先を表示するためのユーザーインターフェースを設計します。Xamarin.Formsでは、XAMLを使ってUIを宣言的に記述します。
-
MainPage.xamlの作成
MainPage.xaml
で、連絡先のリストを表示するためのListViewを定義します。以下のコードは、連絡先リストを表示するための基本的なUIです。xml"1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="ContactsApp.MainPage"> <StackLayout> <Label Text="連絡先一覧" FontSize="Large" HorizontalOptions="Center" /> <ListView x:Name="ContactsListView"> <ListView.ItemTemplate> <DataTemplate> <TextCell Text="{Binding Name}" Detail="{Binding PhoneNumber}" /> DataTemplate> ListView.ItemTemplate> ListView> StackLayout> ContentPage>
-
連絡先データをバインドする
MainPage.xaml.cs
で、連絡先のデータをListViewにバインドします。以下のコードでは、ContactService
を使って連絡先情報を取得し、それをListViewに表示します。csharppublic partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); LoadContacts(); } private async void LoadContacts() { var contactService = new ContactService(); var contacts = await contactService.GetContactsAsync(); ContactsListView.ItemsSource = contacts; } }
5. まとめ
この第1部では、Xamarinを使用して連絡先アプリの基本的な構造を作成しました。アプリは、デバイスの連絡先データを取得し、それをListViewで表示します。次回のパートでは、連絡先の詳細表示や編集機能を追加し、アプリの機能を拡張していきます。
次回は、さらに深い部分に進み、連絡先の編集や削除、検索機能などを実装する予定です。