Jetpack Compose
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);
}
}
これもだいたい同じですね。