「Jetpack Compose」の版間の差分
Administrator (トーク | 投稿記録) 編集の要約なし |
Administrator (トーク | 投稿記録) |
||
| 32行目: | 32行目: | ||
<source lang="csharp"> | <source lang="csharp"> | ||
using Android.App; | |||
using Android.OS; | |||
using AndroidX.AppCompat.App; | |||
using Xamarin.AndroidX.Compose.UI; | |||
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)] | [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)] | ||
public class MainActivity : AppCompatActivity | public class MainActivity : AppCompatActivity | ||
2024年7月19日 (金) 05:17時点における版
Jetpack Compose (AndroidX Compose)とは、AndroidアプリのUIデザインを関数で定義するやつです。
大雑把にいえばiOSでいうSwiftUIみたいなもんです。ソースコードでガシガシとUIデザインするやつです。
SwiftUIではViewプロトコルのbodyプロパティで定義します。
struct ContentView: View {
var body: some View {
Text("hello world.")
}
}
一方、AndroidXのComposeではActivityのsetContent関数で実装します。
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text("hello world.")
}
}
}
だいたい同じですね。
.NET for Android (旧Xamarin.Android)
.NET for Android (旧Xamarin.Android)向けのNuGetも存在しています。
using Android.App;
using Android.OS;
using AndroidX.AppCompat.App;
using Xamarin.AndroidX.Compose.UI;
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
// Compose UIのセットアップ
ComposeView composeView = new ComposeView(this);
composeView.SetContent(() =>
{
// ここにCompose UIのコンポーネントを配置します
});
// ComposeViewをContentViewとして設定
SetContentView(composeView);
}
}
これもだいたい同じですね。