03ïŒã¯ãããŠã¹ããã¢ããªãäœã£ãŠã¿ãïŒèª¿æ»ãã§ãŒãºïŒãXamarin.Formsã
åçš¿:
æŽæ°:

èšäºã®æŠèŠ
ãã¡ãã®äžèЧã®3ã€ç®ãã調æ»ãã§ãŒãºãã®èšäºã
- æ€èšãã§ãŒãºïŒã©ããªã¢ããªãäœããïŒ
- èŠä»¶ãã§ãŒãºïŒã©ããªèŠä»¶ã®ã¢ããªã«ãããïŒ
- 調æ»ãã§ãŒãºïŒã©ããªæè¡ã䜿ããïŒãä»åã
- èšèšãã§ãŒãºïŒã©ããã£ãŠäœããïŒ
- éçºãã§ãŒãºïŒå®éã«äœãã¯ãããïŒ
- å ¬éãã§ãŒãºïŒã¢ããªãå ¬éããïŒ
- ä¿å®ãã§ãŒãºïŒå ¬éããçŸåšãŸã§ïŒ
ãã€ãžã§ã¹ãã§èªã¿ããæ¹ã¯ãã¡ãã®èšäºãã
ãããã ãã®åºŠãçŽ äººãªããã¹ããã¢ããªéçºã«ææŠããŠã¿ããä»åã®èšäºã§ã¯æŠèŠãšçµç·¯ã«ã€ããŠæžãç¶Žã£ãŠã¿ãããå®éã«è¡ã£ãäœæ¥ã®è©³çްã¯ãå š7åã«åããèšäºãå¥éäœæ
ã€ã³ã¹ããŒã«ã¯ãã¡ãããã

ã¯ãããŠã®ã¹ããã¢ããªéçº èª¿æ»ãã§ãŒãº
ã¹ããã¢ããªã£ãŠã©ããªæè¡ã䜿ãã®ã調ã¹ã

ååã¯ã倧ãŸãã§ã¯ããããã¢ããªã®èŠä»¶ã決å®ããŠããéçšã«ã€ããŠæžããã
ä»åã¯èšèšäœæ¥ã®å段ãšããŠããã©ããã£ãŠäœããããæ±ºããŠããéçšããŸãšããŠã¿ããã
ä»åããããç®æããŠããã®ã¯ãã·ã³ãã«ã«ç¡ç èšé²ãç»é²ã»é²èЧã§ããã¢ããªãã
èããªããšãããªãã®ã¯ãã ããã以äžã®3ã€ã ãããšããããä»ã調ã¹å§ããã
- ã¢ããªã®ãã©ãããã©ãŒã
- éçºãã¬ãŒã ã¯ãŒã¯ã»èšèª
- ããŒã¿ããŒã¹
以äžã®åé ç®ããšã«ãèããããšã決å®ããŠããéçšããŸãšããŠããã
ã¢ããªã®ãã©ãããã©ãŒã ãèãã

ãŸããã¡ãã®èšäºãèŠãŠã¿ããšãäžçå šäœã§ã¯ãAndroidãã®ã·ã§ã¢ãå€ãããæ¥æ¬ã§ã¯ãiPhoneãã®æ¹ãã·ã§ã¢ã¯é«ããããã
ãiPhone VS Androidãäžçãšæ¥æ¬ã«ãããã¹ããOSã®ã·ã§ã¢æ¯èŒ â XERA
æ¥æ¬ã§ã¯iPhoneãå§åçã«äººæ°ã§ãããiOSã·ã§ã¢çã¯çŽ70ïŒ ããããäžçã§ã¯Androidã®æ¹ãã·ã§ã¢ãé«ãçµæã«ã2017å¹Žã®ææ°ããŒã¿ã§åæããŠããŸãã
åœåãå®ããä»åã®èŠä»¶ã®äžã«ãå€èšèªå¯Ÿå¿ããããã
è±èªã𿥿¬èªã«å¯Ÿå¿ããã¢ããã€ããããšæã£ãŠããããåœå ã§åæ°ä»¥äžãå ãããiPhoneãã¯ç¡èŠã§ããªããšã®æããé ããããã
ããã第äžã®æ¡ä»¶ã¯ãèªåã䜿ããããããŠããããæ®æ®µå©çšããŠããã®ã¯ãAndroidãã
ãšããããšã§ãä»åã¯ãAndroidã¢ããªãäœããããšã«æ±ºããã
éçºãã¬ãŒã ã¯ãŒã¯ã»èšèªãèãã
äœãã®ã¯ãAndroidã¢ããªãã«æ±ºå®ããã
ç¶ããŠãã©ã®ãããªèšèªãéçºç°å¢ãå¿ èŠãã調ã¹ãã
ãŸãã¯ãã¡ãã®èšäºãåèã«ããã
Androidéçºç®ç·ã§JavaãšKotlinãšDart(Flutter)ãæ¯èŒ
ãAndroidã®ã¢ããªéçºã«ã¯èå³ãããã©ãKotlinã®æ¹ãããã®ããªïŒããæè¿ã¯ Flutterã䜿ã£ãã¢ããªéçºãçãã¿ãã...ããAndroidãã©ã®èšèªãéžã¹ã°ããã®ïŒããJavaã¯åŠã°ãªãã»ããããã®ïŒããšããæ¹åãã«ã Java ãš Kotlin ãš Dart ã®éãã驿§ã«ã€ããŠã玹ä»ãããŠé ããŸãã
GoogleãæäŸãããAndroid Studioããšããéçºç°å¢ã§ãJavaããŸãã¯ãKotlinããšããèšèªã§éçºããã®ãã¹ã¿ã³ããŒããšèšãããã ã
äžæ¹ããFlutterããšãããã¬ãŒã ã¯ãŒã¯ãšãDartããšããèšèªã§éçºããæ¹æ³ã«ãè§ŠããŠããã
Flutter & Dartã§AndroidãšiPhoneäž¡æ¹ã®ã¢ããªãäžåºŠã«éçºã§ãããšããã¡ãªãããããšã®ããšã
ããã¯ãããããåŸãããªããïŒãšãªãããã ããäžã®èšäºã«ãããéãJavaãKotlinã«æ¯ã¹ããšå§åçã«æ å ±éãå°ãªããšã®ããšã
äœã£ãŠããéçšã§åå¿è ã¯çµ¶å¯Ÿã€ãŸããããšã¯ç¥ã£ãŠããã
ãã®ãããåæ°ã€ãŸããããæ å ±éãå€ãããšã¯ãšãŠãéèŠã
ãšããããšã§ãFlutterã¯åŽäžãšããã
ã§ã¯ãAndroid Studioãã€ã³ã¹ããŒã«ããŠJavaãKotlinã©ã¡ãã«ãããæ±ºããã®ããšæãããããŸã æ©ãã
ãããã¯ãã€ãŠãäžéå端ã«ãC#ããšããèšèªã䜿ã£ãŠããçµéšãããã
ãããç¡ããã°ãè¿·ãããAndroid Studioããã€ã³ã¹ããŒã«ããŠãããšæãã
ãããŠãããæ£è§£ã ã£ããªãšæãã
ãšãããããXamarin.Formsããªããã®ãç¥ã£ãŠããŸãã®ã ã
Xamarin.Forms ã®æŠèŠ - Xamarin
ãã®èšäºã§ã¯ãXamarin.Forms ãšé¢é£ã©ã€ãã©ãªã«ã€ããŠç޹ä»ããŸãã
ãªããšããC#ãã§AndroidãšiPhoneã¢ããªãéçºã§ããã§ã¯ãªããã
ãããŠãMicrosoftã«ããããã¥ã¡ã³ãããã¥ãŒããªã¢ã«ãªã©ãçµæ§å å®ããŠããã
ãšããããšã§ããããã¯ãXamarin.Formsãã䜿ã£ãŠã¢ããªãäœãããšã«æ±ºããã
ããã®ã¡ã®ã¡çްãããšããã§è¡ãè©°ãã調ã¹ããã³ã«ãJavaã«ããŠããã°è¯ãã£ãããšããç¶æ³ã«ãã°ãã°çŽé¢ããã
ãã¯ããæ å ±éãã¯å€§äºã
å ¬åŒããã¥ã¡ã³ããæã£ãŠãããšã¯ãããå®éäœãå§ãããšçްããåé¡ã«çŽé¢ãããããªãæ å ±ãæ±ããããã«ãªãã
ãããªããšãéçºäººå£ãå€ãèšèªã®æ¹ã解決ã«ãã©ãçãã¹ããŒããæ©ãŸããšæãã
ãŸããXamarin.Formsã¯iPhoneã¢ããªãåæã«éçºã§ããããªãªãŒã¹ãŸã§è¡ãã«ã¯æäœéiPhone端æ«ãã§ããã°Macãå¿ èŠã
ãMacäžèŠã.NET補iOSã¢ããªãiPhone宿©é åããæé - Qiita
2023/12/02 远èšXamarin.Forms ã®åŸç¶ã§ãã MAUI ã䜿ã£ãèšäºãæçš¿ããŸããããMacäžèŠã.NET MAUI 補 iOS ã¢ããªã iPhone ã«æè»œã«ãããã°é âŠ
çµæçã«ããããã¯ãXamarin.Formsããéžæããã
ãããŸã£ããã®ã€ãããèããå ŽåããAndroidã¢ããªãäœããããã°Android Studio & JavaãŸãã¯KotlinãããiPhoneã¢ããªãäœããããã°Mac & Xcode & SwiftãŸã㯠Objective-Cãªã©ããè¯ããšæãã
ãããã®ããã«ãC#ããã.NETãã«ãããŠãã©èŠªãã¿ãããã°ãããã°ã©ãã³ã°åŠç¿ãã¹ãããã§ãããããXamarin.Formsããè¯ããããããªãã
ãã å ã»ã©ãæžãããšããAndroidãã€ãã£ããiPhoneãã€ãã£ãéçºã«æ¯ã¹ããšæ å ±éã¯ã°ããšå°ãªãã
ãšãããããä»åã®éžæã¯äžèšã®éãã
- éçºç°å¢
- Visual Studio Community 2019
- ãã¬ãŒã ã¯ãŒã¯
- Xamarin.Forms
- èšèª
- C#
ããŒã¿ããŒã¹ãèãã

åé ãã ãã¶é·ããªã£ãŠããŸã£ãããç¶ããŠãããŒã¿ããŒã¹ãã«ã€ããŠæžãããã
ä»åã®ã¢ããªã§ã¯ãç¡ç èšé²ãä¿åããããŠãèšé²ãé²èЧãããæ©èœãå®è£ ããäºå®ã
ãããªããšãããŒã¿ã®æ°žç¶åãèããå¿ èŠãããã
Xamarin.Formså ¬åŒã«ãã¥ãŒããªã¢ã«ãæ²èŒãããŠãããSQLiteãã䜿çšããããšã«ããã®æç¹ã§ã¯æ±ºããã
åãæ±ããéåžžã«ç°¡åã
Xamarin.Forms ããŒã«ã« ããŒã¿ããŒã¹ - Xamarin
Xamarin.Forms ã¯ãSQLite ããŒã¿ããŒã¹ ãšã³ãžã³ã䜿ã£ãããŒã¿ããŒã¹é§ååã¢ããªã±ãŒã·ã§ã³ããµããŒãããŠããŸããããã«ãããå ±æã³ãŒãã§ã®ãªããžã§ã¯ãã®èªã¿èŸŒã¿ãšä¿åãå¯èœã«ãªããŸãã ãã®èšäºã§ã¯ãXamarin.Forms ã¢ããªã±ãŒã·ã§ã³ã SQLite.Net ã䜿ã£ãŠãããŒã«ã«ã® SQLite ããŒã¿ããŒã¹ã«å¯ŸããŠããŒã¿ã®èªã¿æžããè¡ãæ¹æ³ã«ã€ããŠèª¬æããŸãã
ããããå®éã«ãªãªãŒã¹ããã¢ããªã§ã¯sqliteãšã¯ç°ãªã2ã€ã®ããŒã¿ããŒã¹ã䜿çšããã
ããŒã«ã«DBã¯ãRealmããã¯ã©ãŠãDBã¯ãAzure CosmosDBãã
åœåãäžã«ãæžããéããSQLiteãã§éçºãé²ããŠãããã調ã¹ãŠããéçšã§ãRealmããç¥ã£ãã
ãRealmã®åºç€ç¥è ãç¹åŸŽãšåŒ·ã¿ã®åèªèãããã¢ãã€ã«ãããŒã¿ããŒã¹ãã§æ€çŽ¢ãããšçã£å ã«åºãŠããRealmãæ¢ã«åºã䜿ãããŠããRealmã®åºç€ãšç¹åŸŽã解説ããŸããÂ
.NETçšã®ããã¥ã¡ã³ããããã
åœåã¯ããŒã«ã«ã ãä¿åã§ããã°ãããšèããŠããããæ©çš®å€ãªã©å¥ã®ç«¯æ«ã«ç§»ã£ãå Žåãèæ ®ããããµãŒãäžã«ä¿åãããããšãªã£ãã
ããã§èŠã€ããã®ããAzure CosmosDBãã
çµ±å AI ããŒã¿ããŒã¹ - Azure Cosmos DB
AI æä»£ã®ããŒã¿ããŒã¹ - Azure Cosmos DB ã¯ããªãã¬ãŒã·ã§ãã« ããŒã¿ã®ããŒãºã«åãããŠæ¯é¡ã®ãªãä¿¡é Œæ§ãšæè»æ§ãæäŸãã NoSQLããªã¬ãŒã·ã§ãã«ããã¯ã¿ãŒ ããŒã¿ããŒã¹ã§ãã
ãããããåæ§ã®ãµãŒãã¹ã§ããã°amazonãæäŸãããAWSããªã©ãå©çšããã»ããå®ããæ å ±éãããããšãåãã£ãã
ãã ã.NETéçºã«é¢ããŠã¯Microsoftã«ãããAzure CosmosDBãã®æ¹ãããã¥ã¡ã³ãããããšæããã
çµæçã«ããµã€ã³ã¢ããããã«äœ¿çšãããŠãŒã¶ã¯ããŒã«ã«ã®ãRealmãããµã€ã³ã¢ããããµãŒãäžã«ããŒã¿ãä¿åãã人ã¯ãCosmosDBãã䜿ãåãã仿§ã«æ±ºããã
ãã Xamarin.Formsã§ããŒã«ã«ã«ä¿åãããã ãã§ããã°ããRealmãããããSQLiteãã®æ¹ãæ å ±ã¯å€ãèŠã€ããã
ãšãããããããããéžæããã®ã¯äžèšã®éãã
- éçºåœå
- SQLite
- æçµçã«æ¡çš
- Realm
- Azure CosmosDB
ãã®ä»
以äžã¯ãæåã¯èããŠããªãã£ãããšã§ãåŸãã远å ããã¢ãã
æçµçã«ãµã€ã³ã¢ããããæ©èœã远å ãããããAzure Active Directory B2CããšãããµãŒãã¹ã䜿çšããããšã«ããã
Azure Active Directory B2C ã®ããã¥ã¡ã³ã
Azure Active Directory B2C ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³äœ¿çšæã®é¡§å®¢ã®ãµã€ã³ã¢ããããµã€ã³ã€ã³ããããã¡ã€ã«ç®¡çãã«ã¹ã¿ãã€ãºããŠå¶åŸ¡ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
ã¯ã©ãŠããµãŒãã¹ãå©çšãããããã©ã³ãã³ã°ã³ã¹ããçºçããããšã«ãªã£ãã
ãããè£ããããããäžéšã«åºåãå ¥ããããšãšããGoogle AdMobããšãããµãŒãã¹ã䜿çšããã
Google AdMob - ã¢ãã€ã«ã¢ããªã®åçå
ã¢ããªå åºåã䜿ã£ãŠã¢ãã€ã«ã¢ããªããã®åçãå¢ãããŸããããè¡åã«ã€ãªããã€ã³ãµã€ããå ¥æã§ãã䜿ããããããŒã«ã§ã¢ããªã®æé·ãåŸæŒãã§ããŸãã
ãŸãšã

é·ããªã£ãããä»åã®ã¢ããªã§ãã©ããªæè¡ã䜿ãããã«ã€ããŠèããéçšããŸãšããã
åãã¬ãŒã ã¯ãŒã¯ãèšèªããµãŒãã¹ãªã©è©³çްã«ã€ããŠã¯ãã€ãŸãããéšåãªã©ã«ãã©ãŒã«ã¹ããŠå¥éèšäºãæžãããã
å æ¥èªãã ãClean Architectureãé人ã«åŠã¶ãœãããŠã§ã¢ã®æ§é ãšèšèšããšããæžç±ã¯ãä»åæžãããããªãã¬ãŒã ã¯ãŒã¯ãããŒã¿ããŒã¹ãªã©ã¯ã詳现ãã§ããããšæžãããŠããã
ãClean Architectureãé人ã«åŠã¶ãœãããŠã§ã¢ã®æ§é ãšèšèšããèªãã
ãœãããŠã§ã¢éçºããé¢ããŠ10幎以äžãçµéããŠãããæšå¹Žå€ããããã¹ããã¢ããªã§ãéçºããŠã¿ãããšäžå¿µçºèµ·ãåç³ãšåããè³ã¿ããã¢ããããŒãããããã«èªãã äžåãåºãã£ãç®æãªã©ãåå¿é²ãšããŠã¡ã¢ããŠããã第ïŒç« ã®åé ã«ãããããã¢ãŒããã¯ãã£ã£ãŠäœãïŒãããããäœã§èšèšããã®ïŒäœã§ããèšèšã
ããããçµéšãç©ããšãããèããããšãã§ãããšæãã®ã ããåå¿è ã«ãšã£ãŠãå®éã«äœ¿ãéå ·ãäœã§ããããã¯ããšãŠãéèŠã ãšæãã
ã©ã®ãããªéå ·ã䜿ãã®ããŸã£ããã€ã¡ãŒãžããã«ããžãã¹ã³ã¢ãè©°ããŠããäœæ¥ã¯ãšã£ãŠãé«åºŠãªã¹ãã«ã ãšæããããã ã
ãŸãã¹ããã¢ããªãäœããããšæã人ã§ããã°ãèšèªããã¬ãŒã ã¯ãŒã¯ãžã®èå³ãé«ãã¯ãã
ããããéžå®ããäœæ¥ã¯æ¥œãããããæ°ãäžããã å®éããããã¯ããã ã£ãã
次åã¯ãèšèšãã§ãŒãºïŒã©ããã£ãŠäœããïŒã«ã€ããŠãŸãšããŠããããã
ã¯ãããŠã¹ããã¢ããªãäœã£ãŠã¿ã èšäºäžèЧ
- æ€èšãã§ãŒãºïŒã©ããªã¢ããªãäœããïŒ
- èŠä»¶ãã§ãŒãºïŒã©ããªèŠä»¶ã®ã¢ããªã«ãããïŒ
- 調æ»ãã§ãŒãºïŒã©ããªæè¡ã䜿ããïŒãä»åã
- èšèšãã§ãŒãºïŒã©ããã£ãŠäœããïŒ
- éçºãã§ãŒãºïŒå®éã«äœãã¯ãããïŒ
- å ¬éãã§ãŒãºïŒã¢ããªãå ¬éããïŒ
- ä¿å®ãã§ãŒãºïŒå ¬éããçŸåšãŸã§ïŒ