
- TOP
- ã¿ã°äžèЧ
- Android
Android
ã€ãã³ã
ãã¬ãžã³
æè¡ããã°
ã¯ããã« ããã«ã¡ã¯ãæ°èŠäºæ¥éšããã³ããšã³ããããã¯ã® 倧éçŽå¹³ ã§ãã2025å¹ŽåºŠã«æ°åå
¥ç€ŸããçŸåšã®ããŒã ã«é
å±ãããŸãããããŒã ã§Flutter補ã¢ãã€ã«ã¢ããªãéçºããäžã§ãæ°èŠãããžã§ã¯ãã®ç«ã¡äžããå¹çåããããã®ç€Ÿå
ãã³ãã¬ãŒããªããžããªã®æŽåãé²ããŠããŸãã ãã®ãã³ãã¬ãŒããè²ãŠãäžã§ã Flutter 3.44 ãžã®ã¢ããããŒãã«äŒŽãCocoaPodsããSPMãžã®ç§»è¡å¯Ÿå¿ãç©ã¿æ®ãã«ãªã£ãŠããŸãããããããŠããã®ã¿ã€ãã³ã°ã§dev / stg / prdã®3ç°å¢å¯Ÿå¿ãæ°èŠã«è¿œå ããŸããïŒ3 flavoråèªäœã¯SPMç§»è¡ã®å¿
é èŠä»¶ã§ã¯ãªãããã³ãã¬ãŒãæŽåã®äžç°ã§åæã«çæãããã®ã§ãïŒãæ¬èšäºã§ã¯ã CocoaPodsããSPMãžã®ç§»è¡ ãšã 3 flavorã mise run setup ã§äžæ¬æŽåããä»çµã¿ ã玹ä»ããŸããããããŠãFlutterã«ããããã«ãæ§æãã¡ã€ã«ã解説ããŸãã ç®æ¬¡ ã¯ããã« ç®æ¬¡ Flutterãããžã§ã¯ãã®ãã«ãæ§æ iOSåŽã®ããã¿ AndroidåŽã®ããã¿ DartåŽã®ããã¿ 3å±€ã貫ãå
šäœå èæ¯ã»èª²é¡ 3ç°å¢ã®èšå®æŽåãå£ãããã 解決çã®å
šäœå å®è£
å
容ãšå
·äœçãªè§£æ±ºç 1. CocoaPodsãæ€å»ããŠSPMã«ç§»è¡ãã CocoaPodsã®çµ±åãè§£é€ãã Crashlytics dSYMã®ãã¹ãæŽæ°ãã 2. iOSïŒxcconfigã§Build Configurationã9ãã¿ãŒã³ã«æŽãã Firebase plistãBuild Phaseã§å·®ãæ¿ãã 3. AndroidïŒproductFlavorsãšgoogle-services.jsonãflavorããšã«é
眮ãã 4. DartïŒfirebase_optionsãã»ã¬ã¯ã¿shimåãã main.dartã§duplicate-appãåŠçãã 5. mise run setupã§å
šflavorãäžæ¬çæãã ãŸãšã Flutterãããžã§ã¯ãã®ãã«ãæ§æ Flutterã¢ããªã¯ iOSãã€ãã£ãå±€ã»Androidãã€ãã£ãå±€ã»Dartå±€ ã®3ã€ãçµã¿åããã£ãŠããŸããç°å¢ïŒflavorïŒã®åãæ¿ããšã¯ã3å±€ãã¹ãŠã«ãåãflavorçšã®èšå®ãéžã°ããããšãã§ãã iOSåŽã®ããã¿ Xcodeã¯ä»¥äžã®åäœãçµã¿åãããŠãã«ããå®çŸ©ããŸãã åäœ åœ¹å² Flutter ããã©ã«ã Project ( .xcodeproj ) ãããžã§ã¯ãå
šäœã®å®çŸ©ãå®äœã¯ project.pbxproj Runner.xcodeproj Target ãã«ãææç©ã®åäœ Runner Build Configuration ãã«ãèšå®å€ã®éå Debug / Profile / Release ã® 3 çš® Scheme Run / Test / Profile / Analyze / Archive ã®åã¢ã¯ã·ã§ã³ã§äœ¿ã Target ãš Configuration ãå®çŸ©ããèµ·åèšå® Runner 1 〠xcconfig ã¯Build Configurationã®å€ãããã¹ãã§å®£èšãããã¡ã€ã«ã§ããå¥ã®xcconfigã #include ã§åã蟌ãã ãšããåã倿°ãããã° åŸããèªã¿èŸŒãã å€ãåªå
ãããŸããå
±éå€ãæžããxcconfigãå
ã«ãflavoråºæå€ãæžããxcconfigãåŸã«éããã°ãæçµçãªå€ãçµã¿äžãããŸãã Info.plist ã® CFBundleIdentifier 㯠$(PRODUCT_BUNDLE_IDENTIFIER) ãåç
§ããŠããŸãããã®ãããxcconfigåŽã§ PRODUCT_BUNDLE_IDENTIFIER ãæ±ºããã°Bundle IDãèªåçã«è§£æ±ºãããŸãã iOSã»macOSã§å€éšã©ã€ãã©ãªã䜿ããšãã®äŸå管çããŒã«ã«ã¯ã CocoaPods ãš Swift Package ManagerïŒSPMïŒ ã®2ã€ããããŸããFlutterãããžã§ã¯ãã§ã¯é·ããCocoaPodsãæšæºã§ããããFlutter 3.44ããiOSã»macOSã®äž¡æ¹ã§SPMãããã©ã«ãã«åãæ¿ãããŸãããäž¡è
ã®éãã¯ä»¥äžã®ãšããã§ãã CocoaPods Swift Package Manager (SPM) æäŸå
OSSïŒRuby è£œïŒ Apple å
¬åŒ èšå®ãã¡ã€ã« Podfile Package.swift ïŒXcode ã§ã¯ Package Dependencies UI ããç·šéïŒ ææç© Pods/ + .xcworkspace ãå¥ç®¡ç Xcode ãçŽæ¥ç®¡ç ããã¯ãã¡ã€ã« Podfile.lock Package.resolved Flutter ã§ã®ç¶æ³ é·å¹Žã®æšæº 3.44 ã§ããã©ã«ãæå¹å AndroidåŽã®ããã¿ Androidã®ãã«ãã¯Gradleã android/app/build.gradle.kts ãèªãã§å®è¡ããŸãã æŠå¿µ åœ¹å² buildTypes ãã«ãçš®å¥ïŒ debug / release ïŒ productFlavors åãã¢ããªã®ããªã¢ã³ãå®çŸ©ã applicationId ããªãœãŒã¹ãåå²ã§ãã applicationId / applicationIdSuffix ã¢ããªã®äžæãªèå¥åãiOS ã® Bundle ID çžåœ resValue ãã«ãæã«æååãªãœãŒã¹ãçæãã Gradle ã®æ©èœ AndroidManifest.xml ã¢ããªã®ã¡ã¿ããŒã¿å®£èšã android:label ã§ã¢ããªåãæå® Gradleã¯ãflavorå¥ã®ãªãœãŒã¹ïŒ AndroidManifest.xml ã res/ é
äžãªã©ïŒã source set ãšããä»çµã¿ã§ãã£ã¬ã¯ããªåäœã«åããŸããGradleãflavorãéžãã ãšãã« src/main/ ãšèªåããŒãžããŸãããªã google-services.json ã¯å³å¯ã«ã¯source set mergeã®å¯Ÿè±¡ã§ã¯ãããŸãããgoogle-servicesãã©ã°ã€ã³ã src/<flavor>/google-services.json ãªã©ã®ãã¹ãåªå
床é ã«æ¢çŽ¢ãã1ãã¡ã€ã«ãéžã³ãŸãã DartåŽã®ããã¿ Dartã§flavorãèå¥ããã«ã¯ã³ã³ãã€ã«æå®æ°ã䜿ããŸãã API / ãªãã·ã§ã³ åœ¹å² --dart-define-from-file=path/to/x.json .json ãŸã㯠.env ïŒ KEY=VALUE 圢åŒïŒã§æžããå€ããŸãšã㊠Dart ã«æž¡ã flutter ã³ãã³ãã®ãªãã·ã§ã³ String.fromEnvironment('KEY') æž¡ãããå€ãã³ã³ãã€ã«æå®æ°ãšããŠåç
§ãã APIã switch ã® case å€ã«ãã§ãã firebase_options.dart flutterfire configure ãçæãã Firebase èšå®ãã¡ã€ã«ãé垞㯠1 ãã¡ã€ã« = 1 Firebase ãããžã§ã¯ã 3å±€ã貫ãå
šäœå 3å±€ã1æã«ãŸãšãããšã app_config.yaml â mise run setup â åå±€ã®ãã¡ã€ã«çŸ€ â flutter run --flavor X ãšããæµãã§ãã以éãiOSã»Androidã»Dartã®é ã«ãåå±€å
ã§ mise run setup ãš flutter run --flavor X ãã©ã®ãã¡ã€ã«ãžã€ãªãããã瀺ããŸãã iOSå±€ã§ã¯ãxcconfigãã§ãŒã³ã Info.plist ã解決ããŸãã project.pbxproj ã®Run Scriptãflavorå¥ã® GoogleService-Info.plist ãã³ããŒããŸãã Androidå±€ã§ã¯ã build.gradle.kts ãflavorãã£ã¬ã¯ããªã® google-services.json ãš AndroidManifest.xml ãçµã³ã€ããŸãã Dartå±€ã§ã¯ã flavor/{dev,stg,prd}.json ã® FLAVOR ãèµ·ç¹ã«ãªããŸãã firebase_options.dart ã FLAVOR ã«å¿ã㊠firebase_options_{dev,stg,prd}.dart ãåãæ¿ããŠè¿ãã³ãŒãïŒ ã»ã¬ã¯ã¿ shim ïŒã«ãªããŸãã flutter run --flavor dev --dart-define-from-file=flavor/dev.json ã1åå®è¡ãããšãã«ãåå±€ã§äœãèµ·ãããã䞊ã¹ããšä»¥äžã®ããã«ãªããŸãã iOS ïŒScheme dev â Debug-dev.xcconfig ã§ PRODUCT_BUNDLE_IDENTIFIER ã .dev ä»ãã«è§£æ±ºããããBuild Phaseã®Run Scriptã ios/firebase/dev/ ã®plistãã³ããŒããã Android ïŒproductFlavor dev ãéžã°ã㊠applicationIdSuffix=".dev" ãé©çšãããã src/dev/google-services.json ãsource setã«ããŒãžãããã Dart ïŒ flavor/dev.json ã® FLAVOR=dev ãã³ã³ãã€ã«æå®æ°ã«ãªãã firebase_options.dart ã®ã»ã¬ã¯ã¿shimã firebase_options_dev.dart ãè¿ãã ãããŸã§ãFlutterãããžã§ã¯ãã®ãã«ãæ§æã®æŠèŠã§ãããããèžãŸããŠãæ¬èšäºã§åãçµãã 課é¡ãšè§£æ±ºçãèŠãŠãããŸãã èæ¯ã»èª²é¡ 3ç°å¢ã®èšå®æŽåãå£ãããã dev / stg / prdã®3ç°å¢ãåãæ¿ããã«ã¯ãiOSã»Androidã»Dartã®3å±€ãæŽåãããå¿
èŠããããŸããåå±€ã®å¯Ÿè±¡ã¯æ¬¡ã®ãšããã§ãã iOSïŒBundle IDã GoogleService-Info.plist AndroidïŒ applicationId ã google-services.json DartïŒFirebaseåæåãªãã·ã§ã³ 3å±€ãç¬ç«ããŠããããèšå®æŒãã«ãããã«ã倱æãFirebaseæ¥ç¶äžå¯ãç¹°ãè¿ãçºçããåå ç¹å®ã«ãæéãããã£ãŠããŸããã 解決çã®å
šäœå 以äžã®5ã€ã®åãçµã¿ã§èª²é¡ã解決ããŸããã # å±€ åãçµã¿ 1 iOS / åºç€ CocoaPods æ€å» â SPM ç§»è¡ 2 iOS / flavor xcconfig à 9 Build Configuration + flavor å¥ Firebase plist 3 Android / flavor productFlavors + flavor å¥ google-services.json 4 Dart firebase_options.dart ã®ã»ã¬ã¯ã¿ shim å 5 setup app_config.yaml ã® per-flavor åãš mise èªåå 1ã€ã®flavorãéžãã§ flutter run ãããšãiOSã»Androidã»Dartã®3å±€ã§ãããã察å¿ããèšå®ãé©çšãããŸãã å®è£
å
容ãšå
·äœçãªè§£æ±ºç 1. CocoaPodsãæ€å»ããŠSPMã«ç§»è¡ãã CocoaPodsã¯Ruby補ã®Appleãã©ãããã©ãŒã åãããã±ãŒãžãããŒãžã£ãŒã§ãSwift Package ManagerïŒSPMïŒã¯Appleå
¬åŒã®ä»£æ¿ã§ããFlutter 3.44ã§ã¯æ°èŠãããžã§ã¯ãã§iOSã»macOSãšãã«SPMãããã©ã«ãã§æå¹åãããFirebaseãã¯ãããšããäž»èŠãã©ã°ã€ã³ãSPM察å¿ãå®äºããŠããŸãã pod install ãäžèŠã«ãªããããCIã®ã»ããã¢ããã倧å¹
ã«é«éåãããŸãã CocoaPodsã®çµ±åãè§£é€ãã æ¢åãããžã§ã¯ãã§ã¯ã Podfile ããããªãåé€ããã®ã§ã¯ãªãããŸã pod deintegrate ã§Xcodeãããžã§ã¯ãããCocoaPodsã®çµ±åãè§£é€ããŸãã cd app/ios pod deintegrate # project.pbxproj ãã Pods çµ±åãé€å» rm Podfile Podfile.lock # Podfile æ¬äœãåé€ rm ã ãã§æžãŸããŠã¯ãããŸããã Podfile ãåé€ããã ãã§ã¯ project.pbxproj ã«CocoaPodsçµ±åã®çè·¡ãæ®ããŸããããšãã° [CP] Check Pods Manifest.lock ãªã©ã®Build Phaseãã Pods-Runner xcconfigã® #include åç
§ãªã©ã§ãã pod deintegrate ã¯ããããæ£ããé€å»ããŸãã .gitignore ãå¿ããæŽæ°ããŸãã # app/ios/.gitignore -.symlinks/ -Pods/ +# SPM +.build/ SPMã管çãã Package.resolved ã¯ããŒãžã§ã³ãåºå®ãããããªããžããªã«ã³ãããããŸãã Crashlytics dSYMã®ãã¹ãæŽæ°ãã dSYMïŒDebug SymbolsïŒã¯ã¯ã©ãã·ã¥ã¬ããŒãã®ã¹ã¿ãã¯ãã¬ãŒã¹ã人éãèªããã·ã³ãã«ã«åŸ©å
ããããã®ãã¡ã€ã«ã§ããCrashlyticsã䜿ã£ãŠããå Žåããã®dSYMãã¢ããããŒãããBuild Phaseã¹ã¯ãªãããSPMæ§æã®ãã¹ã«åãããŠæŽæ°ããŸãããã®Run Script㯠setup ç³»ã¹ã¯ãªãããèªåçæãããã®ã§ã¯ãªããCrashlyticsãå©çšããå Žåã¯ãããžã§ã¯ãããšã«æåã§è¿œå ããæé ã§ãã Firebaseå
¬åŒã®Appleåãã¬ã€ã ã¯çŸåšSPMæ§æãåæãšããŠãããRun Scriptã«ä»¥äžã远å ããããèšèŒãããŠããŸãã # Build Phases > Run Script " ${BUILD_DIR % /Build/* } /SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run " CocoaPodsæã® ${PODS_ROOT}/FirebaseCrashlytics/run ã«çžåœããŸããXcode 15以é㯠User Script Sandboxing ãããã©ã«ãã§æå¹ã«ãªã£ãŠããŸããæå¹ãªå Žåã¯Run Scriptã®Input Filesã«ä»¥äžãåæããå¿
èŠããããŸãïŒ Firebaseå
¬åŒããã¥ã¡ã³ã ïŒã ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME} ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME} ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH) # Debug DylibïŒDEBUG_DYLIBïŒãæå¹ãªå Žåã¯è¿œå ã§å¿
èŠ ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib 2. iOSïŒxcconfigã§Build Configurationã9ãã¿ãŒã³ã«æŽãã iOSã®Xcodeãããžã§ã¯ãã¯ãBuild Configurationããšãããã«ãèšå®ã®åäœãæã¡ãŸããåConfigurationã«ã¯xcconfigãã¡ã€ã«ïŒããã¹ãã§ãã«ãèšå®ãèšè¿°ããä»çµã¿ïŒã1ã€çŽä»ããããŸããæ¬ãã³ãã¬ãŒãã¯ã以äžã®9éãã®Build ConfigurationãçšæããŠããŸãã dev stg prd Debug Debug-dev Debug-stg Debug-prd Profile Profile-dev Profile-stg Profile-prd Release Release-dev Release-stg Release-prd ãããã¯ããããã project.pbxproj ã«ã³ãããæžã¿ã§ããããããŠãããããåç
§ãã dev / stg / prd ã®3 Schemeãã³ãããæžã¿ã§ããåSchemeã¯ãRun/Test/Analyzeã§ Debug-<flavor> ãåç
§ããŸããProfileã§ã¯ Profile-<flavor> ãArchiveã§ã¯ Release-<flavor> ãåç
§ããŸãã3ã€ã®Schemeã«ã¯ãFlutteræšæºã® Run Prepare Flutter Framework Script pre-actionãå«ããŠå®å
šãªç¶æ
ã§çšæãããŠããŸãããã®pre-action㯠xcode_backend.sh prepare ãå®è¡ããŸããããã«ããSPMçµ±åã«å¿
èŠãª FlutterGeneratedPluginSwiftPackage ã解決ãããŸãã mise run setup ã¯ãã®SchemeâConfigurationã®ãããã³ã°ãpre-actionã«ã¯äžåè§ŠããŸãããæžãæããã®ã¯ãåConfigurationã«çŽã¥ãxcconfigã®å€ïŒBundle IDãã¢ããªåãªã©ïŒã ãã§ãã Flutter/Shared.xcconfig â å
š Configuration å
±éã®å€ Flutter/flavor-dev.xcconfig â dev åºæã®å€ïŒBUNDLE_ID_SUFFIX ãªã©ïŒ Flutter/flavor-stg.xcconfig Flutter/flavor-prd.xcconfig Flutter/Debug-dev.xcconfig â #include ã§é£çµïŒ9ãã¡ã€ã«ïŒ Flutter/Debug-stg.xcconfig ... Flutter/Release-prd.xcconfig åŸãã® #include ãåã®å€ãäžæžããããããå
±éå€ïŒ Shared ïŒâ flavoråºæå€ïŒ flavor-dev ïŒã®é ã«éããããšã§æçµçãªå€ã決ãŸããŸãã Debug-dev.xcconfig ã¯3è¡ã® #include ã®ã¿ã§æ§æãããŸãã #include "Debug.xcconfig" #include "Shared.xcconfig" #include "flavor-dev.xcconfig" ããã§ãã«ãæã«å¯Ÿå¿ããxcconfigã PRODUCT_BUNDLE_IDENTIFIER ã解決ããŸãããã®å€ã Info.plist çµç±ã§flavorä»ãBundle IDïŒäŸïŒ jp.testapp.dev ïŒãšããŠé©çšãããŸãã Firebase plistãBuild Phaseã§å·®ãæ¿ãã flavorå¥ã® GoogleService-Info.plist ã䜿ãåãããããBuild Phaseã«Run Scriptã远å ããŸããRun Scriptå
ã® ${FLAVOR} ã¯å®è¡çŽåã«xcconfigã®å€ïŒ dev / stg / prd ïŒã«çœ®ãæããããŸããããã«ããã³ããŒå
ãã£ã¬ã¯ããªãflavorããšã«åãæ¿ããã該åœããplistã ãã .app ãã³ãã«ã«å
¥ããŸãã # Build Phases > Run Script SRC = " ${SRCROOT} /firebase/ ${FLAVOR} /GoogleService-Info.plist " DST = " ${BUILT_PRODUCTS_DIR} / ${PRODUCT_NAME} .app/GoogleService-Info.plist " if [ -f " $SRC " ]; then cp -f " $SRC " " $DST " else echo " warning: $SRC not found, Firebase native init will be skipped " fi plistãååšããªãflavorã§ããã«ãã倱æããªããããååšãã§ãã¯ãå
¥ããŠããŸãã firebase_project_id ã空ã«ããŠFirebaseèšå®ãã¹ãããããå Žåãããã«è©²åœããŸãããã®Run Scriptã¯èªã¿æžã察象ã®ãã¹ãInput Files / Output FilesãšããŠããããã宣èšããŠããŸãããã®ããUser Script Sandboxingãæå¹ãªç°å¢ã§ãå®å
šã«åäœããŸãã plistã¯ä»¥äžã®ã¹ãããã«é
眮ããŸãïŒ setup:firebase ãçæïŒã app/ios/firebase/ âââ dev/GoogleService-Info.plist âââ stg/GoogleService-Info.plist âââ prd/GoogleService-Info.plist 3. AndroidïŒproductFlavorsãšgoogle-services.jsonãflavorããšã«é
眮ãã Androidã§ã¯ build.gradle.kts ã« productFlavors ã远å ããflavorããšã« applicationIdSuffix ãšã¢ããªåãèšå®ããŸãã // app/android/app/build.gradle.kts flavorDimensions + = "env" productFlavors { create( "dev" ) { dimension = "env" applicationIdSuffix = ".dev" resValue( "string" , "app_name" , "Flutter Template App Dev" ) } create( "stg" ) { dimension = "env" applicationIdSuffix = ".stg" resValue( "string" , "app_name" , "Flutter Template App Stg" ) } create( "prd" ) { dimension = "env" resValue( "string" , "app_name" , "Flutter Template App" ) } } google-services.json ã¯Android Gradleã®flavorãœãŒã¹ã»ããïŒ src/<flavor>/ ïŒã«é
眮ããŸããflavorçšã®èšå®ãã¡ã€ã«ã¯google-servicesãã©ã°ã€ã³ãèªåã§éžæããŸãã android/app/src/ âââ dev/google-services.json # setup:firebase ãçæ âââ stg/google-services.json âââ prd/google-services.json 泚æç¹ã2ã€ãããŸãã1ã€ç®ã¯ google-services.json ã® package_name ã§ããsuffix蟌ã¿ã®æçµapplicationIdã«åãããŸãïŒäŸïŒ com.example.app.dev ïŒãsuffixãªãã® com.example.app ã ãFirebaseã«ç»é²ããŠãããšãdev / stgãã«ãæã«ãã©ã°ã€ã³ãäŸå€ãæããŠãã«ããéããŸãããFirebaseåŽã®ã¢ããªç»é²ãsuffix蟌ã¿ã®applicationIdã§è¡ãå¿
èŠããããŸãã AndroidManifest.xmlã§ android:label="@string/app_name" ã®ããã«åç
§ããŸãã productFlavors ã® resValue ãflavorããšã«çæããæååãããã®ãŸãŸã¢ããªåãšããŠäœ¿ãããŸãã <!-- app/android/app/src/main/AndroidManifest.xml --> <application android : label = "@string/app_name" ...> 2ã€ç®ã¯ã strings.xml ãšã®éè€ã§ãã resValue("string", "app_name", ...) ã¯ãã«ãæã«æååãªãœãŒã¹ãçæããŸãããã®ããã res/values/strings.xml ã«ååã® app_name ãå®çŸ©ãããŠãããš Duplicate resources ãšã©ãŒã«ãªããŸãã app_name 㯠strings.xml ã«ã¯çœ®ãããåflavorã® resValue ã«äžæ¬åããŠãã ããã 4. DartïŒfirebase_optionsãã»ã¬ã¯ã¿shimåãã flutterfire configure ãçæãã firebase_options.dart ã¯åäžã®èšå®ããè¿ããŸãããããã§ãã¡ã€ã«åãšAPIãä¿ã£ããŸãŸã ã»ã¬ã¯ã¿ shim ã«çœ®ãæããŸãã ãŸã app/flavor/dev.json ã« FLAVOR ããŒãå®çŸ©ãã --dart-define-from-file ã§èªã¿èŸŒã¿ãŸãã { " FLAVOR ": " dev " } FLAVOR ã¯Dartã³ãŒãåŽã§ String.fromEnvironment('FLAVOR') ã䜿ã£ãŠãã³ã³ãã€ã«æå®æ°ãšããŠåç
§ã§ããŸãã // app/lib/firebase_options.dart import 'package:firebase_core/firebase_core.dart' show FirebaseOptions; import 'firebase_options_dev.dart' as dev; import 'firebase_options_prd.dart' as prd; import 'firebase_options_stg.dart' as stg; const _flavor = String .fromEnvironment( 'FLAVOR' ); class DefaultFirebaseOptions { static FirebaseOptions get currentPlatform { switch (_flavor) { case 'dev' : return dev.DefaultFirebaseOptions.currentPlatform; case 'stg' : return stg.DefaultFirebaseOptions.currentPlatform; case 'prd' : return prd.DefaultFirebaseOptions.currentPlatform; default : throw StateError( 'Unknown FLAVOR: "$_flavor". ' 'Run with --dart-define-from-file=flavor/<flavor>.json' , ); } } } åŒã³åºãåŽïŒ main.dart ïŒã¯ DefaultFirebaseOptions.currentPlatform ããã®ãŸãŸäœ¿ãã ãã§ãflavorã®åãæ¿ããæèããå¿
èŠããããŸããã setup:firebase ã¯ãã®ãã¡ã€ã«ãäžæžããããæ¬ç©ã® firebase_options_<flavor>.dart ã ããåçæããŸãã æ³šæïŒflavoræå®ã¯å¿
é _flavor ãç©ºïŒ --dart-define-from-file æªæå®ïŒã ãšshimã® default ã StateError ãæããŸãã _initializeFirebase ã¯ãããcatchããªããããflavorãªãã® flutter run ã¯èµ·åæã«èœã¡ãŸããVS Codeã®launch.jsonã mise run ã¿ã¹ã¯ã§åflavorãå¿
ãæž¡ãæ§æã«ããŠãããšå®å
šã§ãã main.dartã§duplicate-appãåŠçãã Firebaseã«ã¯2ã€ã®åæåçµè·¯ããããŸãããã€ãã£ãã®èªååæåãšãDartåŽã® Firebase.initializeApp() ã§ããäž¡æ¹ãåŒã°ãããš duplicate-app ã® FirebaseException ãçºçããŸãããã ã duplicate-app ã¯flavoräžæŽåïŒãã€ãã£ãã®plist/jsonãå¥ã®Firebaseãããžã§ã¯ããæããŠããçïŒã§ãçºçããããããç¡æ¡ä»¶ã§æåæ±ãã«ã¯ã§ããŸããããã€ãã£ãåæåæžã¿ã® options ãšæ¯èŒããäžèŽããå Žåã®ã¿æåæ±ãã«ããŸããäžäžèŽã®å Žåã¯äŸå€ãåthrowããã¢ããªãèµ·åæã«ã¯ã©ãã·ã¥ãããŸããäŸå€ãæ¡ãã€ã¶ããŠããŸããšãäžæ£ãªAPIããŒãèšå®äžæŽåãšãã£ãæ€ç¥ããããã°ãèŠéããŠããŸãå¯èœæ§ãããããã§ãã // app/lib/main.dartïŒæç²ïŒ Future< bool > _initializeFirebase() async { try { await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); return true ; } on UnimplementedError { // placeholderïŒsetup:firebase æªå®è¡ïŒã®å Žå㯠Firebase ãç¡å¹åããŠç¶è¡ return false ; } on FirebaseException catch (e) { if (e.code == 'duplicate-app' ) { final existing = Firebase.app().options; final expected = DefaultFirebaseOptions.currentPlatform; final matchesNativeConfig = existing.appId == expected.appId && existing.projectId == expected.projectId && existing.apiKey == expected.apiKey; if (matchesNativeConfig) return true ; } rethrow ; } } 5. mise run setupã§å
šflavorãäžæ¬çæãã mise ã¯ãã¿ã¹ã¯å®è¡ãšããŒã«ã®ããŒãžã§ã³ç®¡çãå
ŒããCLIããŒã«ã§ããæ¬ãã³ãã¬ãŒãã§ã¯ã»ããã¢ããã¹ã¯ãªããã®å®è¡ã«å©çšããŠããŸããæäœæ¥ã®èšå®æŒããé²ããããã»ããã¢ããã®å
¥åãã¡ã€ã« app_config.yaml ã«Firebaseã®project_idãflavorããšã«èšå®ã§ããæ§é ã远å ããŸãããããã«ããã mise run setup:firebase ã§å
šflavorã®èšå®ãã¡ã€ã«ãäžæ¬çæã§ããŸãã flavor : dev : app_name_suffix : " Dev" bundle_id_suffix : ".dev" firebase_project_id : "my-project-dev" # 空æåãªã Firebase èšå®ãã¹ããã stg : app_name_suffix : " Stg" bundle_id_suffix : ".stg" firebase_project_id : "my-project-stg" prd : app_name_suffix : "" bundle_id_suffix : "" firebase_project_id : "my-project-prd" mise run setup:firebase 㯠app_config.yaml ã®åflavorã® firebase_project_id ãèªã¿åããŸããèªã¿åã£ãå€ã§ flutterfire configure ãflavorããšã«å®è¡ããŸãã iOS㯠--ios-out ã§ãã¹ãçŽæ¥æå®ãããšãplistã¯åºåããããã®ã®project.pbxprojãžã®åç
§ã¯ Runner/ é
äžãåæã«è¿œå ãããŸããé
眮ãšåç
§ã®ãºã¬ã§ãã«ããèœã¡ãäºäŸããããŸãããããã§ setup:firebase 㯠flutterfire configure ã®ããã©ã«ãåºåïŒ Runner/ ïŒãå©çšããåŸåŠçã§é
çœ®ãæŽããŸãã Build Phaseã®Run Scriptãflavorã«å¿ããŠplistãåçã«ã³ããŒããã®ã§ã project.pbxproj ã®éçåç
§ã¯äžèŠã§ãã setup:firebase ã¯å®è¡ã®ãã³ã«è¿œèšãããåç
§ãæ¯åé€å»ããpbxprojãè¥å€§åããªãããã«ããŠããŸãã # ã¯ãªãŒã³ã¢ãã確èªïŒ0 ã§ããã° OKïŒ grep -c " GoogleService-Info.plist .*PBXBuildFile " \ app/ios/Runner.xcodeproj/project.pbxproj mise run setup:flavor ã¯xcconfigãflavor JSONã app_config.yaml ããåçæããŸããFirebaseã®èšå®ãã¡ã€ã«ã¯å¥é setup:firebase ã§æŽæ°ããŸããäœåºŠå®è¡ããŠãåãåºåã«ãªããããèšå®å€æŽåŸã«åå®è¡ããã°xcconfigãšflavor JSONãåæãããŸãã ãã®ä»çµã¿ã«ãããæ°èŠãããžã§ã¯ãã§ã¯ app_config.yaml ãç·šéã㊠mise run setup ãå®è¡ããã ãã§æžã¿ãŸããiOS xcconfigã»Android productFlavorsã»Dartã»ã¬ã¯ã¿shimã»Firebaseèšå®ãã¡ã€ã«ã®ãã¹ãŠãäžæ¬ã§ã§ãããããŸãã ãŸãšã æ¬èšäºã§ã¯ãFlutterãããžã§ã¯ãã«ãããCocoaPodsããSPMãžã®ç§»è¡ã玹ä»ããŸãããããããŠdev / stg / prdã®3 flavorãiOSã»Androidã»Dartã®3å±€ã§æŽåãããä»çµã¿ã®æ§ç¯ã玹ä»ããŸããã CocoaPodsããSPMãžã®ç§»è¡èªäœã¯ pod deintegrate â Podfileåé€ã§æã£ãããã·ã³ãã«ã§ããæéããããã®ã¯flavorã®3å±€æŽåã§ããããããç¬ç«ããèšå®äœç³»ãæã€ããäžã€ã²ãšã€ç¹ã蟌ãå¿
èŠããããŸãã app_config.yaml â mise run setup ãšããèªååã®ä»çµã¿ãæŽããŸãããããã«ããæåäœæ¥ã«ããèšå®æŒãã®ãªã¹ã¯ãæé€ããããŒã ãæ¬æ¥ã®éçºã«éäžã§ããç°å¢ãäœããŸããã ZOZOã§ã¯ãäžç·ã«ãµãŒãã¹ãäœãäžããŠãããæ¹ãåéäžã§ãããèå³ã®ããæ¹ã¯ã以äžã®ãªã³ã¯ãããã²ãå¿åãã ããã corp.zozo.com
ãã©ã·ããã¹ã¿ãŒãååããã±ãŒãžãåºé POPãªã©ãå°å·ç©ããWebãµã€ããžèªå°ããææ®µãšããŠãQRã³ãŒãã¯åºãå©çšãããŠããŸãã æè»œã«äœæã§ããã¹ããŒããã©ã³ã§ç°¡åã«èªã¿åããããã®äŸ¿å©ãããã QRã³ãŒããã®ãã®ã®å質ã確èªå·¥çš ã«ã€ããŠã¯ãååã«æèãããªããŸãŸå¶äœãé²ãã§ããŸãããšããããŸãã ããããQRã³ãŒãã¯å°å·åŸã«äžå
·åãèŠã€ãã£ãŠãã WebããŒãžã®ããã«ãã®å Žã§ä¿®æ£ããããšã¯ã§ããŸãã ã èªã¿åããªãQRã³ãŒããå°å·ãããŠããŸãã°ã ãã©ã·ãããã±ãŒãžã販ä¿ç©ã®å·ãçŽã ãå¿
èŠã«ãªããå°å·è²»ã ãã§ãªãã çŽæã®é
å»¶ã廿£ã³ã¹ãããã£ã³ããŒã³æ©äŒã®æå€±ãååŒå
ããã®ä¿¡çšäœäž ã«ã€ãªããå¯èœæ§ããããŸãã æ ªåŒäŒç€Ÿã¢ã³ãã«ã³ã ã§ã¯ãããããå°å·åŸã®ãã©ãã«ãé²ãããã«ã QRã³ãŒãã®äœæãšå®æ©æ€èšŒãè¡ããµãŒãã¹ ãæäŸããŠããŸãã QRã³ãŒãã®ãã©ãã«ã¯ããªãå°å·åŸã«çºèŠããã®ã å°å·ç©ã®å¶äœçŸå Žã§ã¯ã è€æ°ã®äŒç€Ÿãæ
åœè
ãé¢ããããšãäžè¬ç ã§ãã çºæ³šå
ã¯ãå¶äœäŒç€Ÿã確èªããŠããã¯ãããšèããå¶äœæ
åœè
ã¯ãèªåã®ã¹ããŒããã©ã³ã§èªããããåé¡ãªãããšå€æããå°å·äŒç€Ÿã¯ãæ¯çµŠãããããŒã¿ããã®ãŸãŸå°å·ããããšããç«å ŽãåãããšããããŸãã ãã®çµæãQRã³ãŒãã®å質ã 誰ãæçµçã«ä¿èšŒããã®ããææ§ãªãŸãŸ ãå
¥çš¿ãŸã§é²ãã§ããŸããŸãã ããœã³ã³ã®ç»é¢äžã§åé¡ãªãèŠããŠããŠããå®éã«å°å·ãããšããµã€ãºãè§£å床ãå°å·ç¶æ
ãæ²èŒããçŽ æãªã©ã®åœ±é¿ã«ãã£ãŠãèªã¿åãã«ãããªãå ŽåããããŸãã äžå°ã®ã¹ããŒããã©ã³ã§èªã¿åãããšããŠãããã¹ãŠã®å©çšè
ãåãæ©çš®ãåãOSãåãã«ã¡ã©ã䜿çšããããã§ã¯ãããŸããã QRã³ãŒãã¯ãäœæããã ãã§ã¯ãªãã å®éã®å©çšç°å¢ãæ³å®ããŠç¢ºèªããããšãéèŠ ã§ãã ç¡æã®QRã³ãŒãäœæããŒã«ã«æœããªã¹ã¯ ã€ã³ã¿ãŒãããäžã«ã¯ãURLãå
¥åããã ãã§QRã³ãŒããäœæã§ããç¡æããŒã«ãæ°å€ããããŸãã äžæçãªæ¡å
ããããã«å·®ãæ¿ããããWebäžã®ç»åã§ããã°ãããããããŒã«ã䟿å©ãªå Žé¢ããããŸãã äžæ¹ãæ°åéšãæ°äžéšãå°å·ãããã©ã·ãããã±ãŒãžã«æ²èŒããQRã³ãŒãã§ã¯ãã ç»é¢äžã§ã¯èªã¿åãã ããšãã確èªã ãã§å
¥çš¿ããã®ã¯å±éºã§ãã QRã³ãŒãã«ã¯ãã³ãŒãã®äœçœ®ãåããèªèããããã®ãäœçœ®æ€åºãã¿ãŒã³ãããããŸããçæããç»åãäžé©åãªæ¹æ³ã§æ¡å€§ã»çž®å°ãããããã¶ã€ã³ããŒã¿äžã§ãµã€ãºã倿Žããããããšã èªã¿åãã«å¿
èŠãªæ¯çã厩ã ãèªèã«æéãããã£ãããèªã¿åããªããªã£ããããå¯èœæ§ããããŸãã ãŸããURLãé·ãå Žå㯠QRã³ãŒãã®æ
å ±å¯åºŠãé«ããªã ãå°å·ãµã€ãºãå°å·å質ã«ãã£ãŠã¯èªã¿åãã«ãããªãããšããããŸãã åé¡ã¯ãç¡æããŒã«ãã®ãã®ã ãã§ã¯ãããŸããã ã 誰ããã©ã®ããŒã«ã§ãã©ã®ãããªæ¡ä»¶ã§äœæããã©ã®ç°å¢ã§ç¢ºèªããã®ã ãã管çãããŠããªãããšãã倧ããªãªã¹ã¯ã«ãªããŸãã äžåºŠã®ç¢ºèªäžè¶³ãã倧ããªæå€±ã«ã€ãªãã QRã³ãŒãã®äžå
·åã¯ãäžèŠãããšå°ããªå¶äœãã¹ã«æãããããããŸããã ãããããã£ã³ããŒã³çšã®å°å·ç©ããã¹ãŠäœ¿çšã§ããªããªãã°ãæå®³ã¯å°å·è²»ã ãã«ãšã©ãŸããŸããã ããšãã°ã次ã®ãããªåœ±é¿ãèããããŸãã å°å·ç©ã®å
šæ°å»æ£ åå°å·è²»çšã®çºç çŽåã»é
åžã¹ã±ãžã¥ãŒã«ã®é
å»¶ ãã£ã³ããŒã³éå§æ¥ã®å€æŽ åºèãé¢ä¿å瀟ãžã®åæé
ã¯ã©ã€ã¢ã³ãããã®ä¿¡çšäœäž åãåãããã¯ã¬ãŒã 察å¿ã®å¢å æ·»ä»è³æã§ã¯ãç¡æããŒã«ã§äœæããQRã³ãŒããååã«ç¢ºèªããå
¥çš¿ããçµæãå°å·åŸã«ã¢ã¯ã»ã¹ã§ããªãããšã倿ãã 1,000äžåãè¶
ããæå®³ ã«ã€ãªãã£ãäºäŸã玹ä»ãããŠããŸãã å€§èŠæš¡ãªæ¡ä»¶ã»ã©ãQRã³ãŒãäžã€ã®äžå
·åãã äºæ¥äžã®å€§ããªäºæ
ã«çºå±ããå¯èœæ§ ããããŸãã å
¥çš¿åã«ç¢ºèªããã5ã€ã®ãã€ã³ã QRã³ãŒããå°å·ç©ã«æ²èŒããéã¯ãå°ãªããšã次ã®é
ç®ã確èªããå¿
èŠããããŸãã 1ïŒååãªæ²èŒãµã€ãºã確ä¿ãããŠããã QRã³ãŒããå°ãããããšãã¹ããŒããã©ã³ã®ã«ã¡ã©ãèªèãã«ãããªããŸãã è³æã§ã¯ãã³ãŒãé åãšããŠ20mm以äžã確ä¿ããããšãæšå¥šãããŠããã10mm以äžã¯ç¹ã«æ³šæãå¿
èŠãšãããŠããŸãã æ²èŒã¹ããŒã¹ã ãã§å€æãããå®éã«èªã¿åãããµã€ãºã§ãããã確èªããããšãéèŠã§ãã 2ïŒåã蟌ãURLãé·ãããªãã QRã³ãŒãã¯ãåã蟌ãæ
å ±éãå€ããªãã»ã©æš¡æ§ã现ãããªããŸãã é·ãURLããã®ãŸãŸäœ¿çšãããšã³ãŒãã®å¯åºŠãé«ããªããå°ããªå°å·ç©ãå°å·æ¡ä»¶ã«ãã£ãŠã¯èªã¿åãæ§èœã«åœ±é¿ããå¯èœæ§ããããŸãã 3ïŒå®éã®å°å·ç©ã§ç¢ºèªããã å¶äœç»é¢ãPDFäžã§èªã¿åããããšãšãå°å·åŸã«èªã¿åããããšã¯åãã§ã¯ãããŸããã å¯èœã§ããã°ãæ ¡æ£å·ããå®éã«è¿ãå°å·æ¡ä»¶ã§åºåããèªã¿åã確èªãè¡ãå¿
èŠããããŸãã 4ïŒè€æ°ã®ç«¯æ«ã§ç¢ºèªããã äžå°ã®ã¹ããŒããã©ã³ã ãã§ç¢ºèªãçµããã®ã§ã¯ãªããiPhoneãšAndroidãç°ãªãæ©çš®ãOSãæšæºã«ã¡ã©ãªã©ãè€æ°ã®ç°å¢ã§æ€èšŒããããšãæãŸããŸãã 5ïŒäœæå
ãšç¢ºèªè²¬ä»»è
ãæç¢ºã æ
åœè
ãå人çã«èŠã€ããç¡æããŒã«ã§äœæãã誰ãçææ¡ä»¶ãææ¡ããŠããªãç¶æ
ã¯é¿ããã¹ãã§ãã ã©ã®ããŒã«ã䜿ãã誰ãäœæããèª°ãæ€èšŒããã®ããèšé²ã§ãããããŒãæŽããããšã§ãç¢ºèªæŒããé²ãããããªããŸãã QRã³ãŒãã®äºæ
ãé²ãã«ã¯ãåäººã®æ³šæåã«é Œããªã ç¹å¿æãçŽæçŽåã«ã¯ãã©ãã»ã©çµéšã®ããæ
åœè
ã§ãç¢ºèªæŒããèµ·ããå¯èœæ§ããããŸãã ãã®ãããçµç¹ãšããŠæ¬¡ã®ãããªã«ãŒã«ãèšããããšãæå¹ã§ãã å°å·ç©ã«äœ¿çšããQRã³ãŒãã¯ãæ
åœè
å人ãç¡æããŒã«ã§äœæããªã æå®ãããæ¹æ³ã§çæãã宿©æ€èšŒãçµããŠããå
¥çš¿ãã QRã³ãŒãã®äœæè
ãšç¢ºèªè
ãåãã æ ¡æ£æã®ãã§ãã¯é
ç®ã«QRã³ãŒãã®èªã¿åã確èªãå
¥ãã 確èªå·¥çšãã«ãŒã«åããã°ãæ
åœè
ã®çµéšãå¿ããã«å·Šå³ããã«ãããªãããã©ãã«ãæ§é çã«é²ãããšãã§ããŸãã æ ªåŒäŒç€Ÿã¢ã³ãã«ã³ãã®ãQRã³ãŒãäœæïŒæ€èšŒãµãŒãã¹ã æ ªåŒäŒç€Ÿã¢ã³ãã«ã³ãã¯ã ãœãããŠã§ã¢ãã¹ããšç¬¬äžè
æ€èšŒãå°éãšããäŒç€Ÿ ã§ãã QRã³ãŒãäœæïŒæ€èšŒãµãŒãã¹ã§ã¯ãæ£èŠããŒã«ã䜿çšããŠQRã³ãŒããçæããå®éã®ã¹ããŒããã©ã³ç«¯æ«ã§èªã¿åã確èªãè¡ããŸãã 瀟å
ã§å°éçãªç¢ºèªç°å¢ãçšæããããšãé£ããå Žå ãã 倧éå°å·ã䌎ãéèŠãªæ¡ä»¶ ã 倱æã§ããªããã£ã³ããŒã³ ãªã©ã§ãå€éšã®æ€èšŒãµãŒãã¹ã掻çšã§ããŸãã ãµãŒãã¹å
容 QRã³ãŒãã®äœæ æ£èŠããŒã«ã䜿çšããçæ ã¹ããŒããã©ã³å®æ©ã§ã®èªã¿åãç¢ºèª æ¡ä»¶èŠæš¡ãäºç®ã«å¿ããæ€èšŒç¯å²ã®èª¿æŽ ãã£ã³ããŒã³ãµã€ããå«ãå€éšæ€èšŒã®çžè« æéã¯ã QRã³ãŒã1åã«ã€ã20,000åïŒçšå¥ïŒ ããã§ãã 倧ããããªæ€èšŒã ãã§ãªããç¯å²ãçµã£ãç°¡æçãªå¯Ÿå¿ã«ã€ããŠãçžè«ã§ããŸãã QRã³ãŒããå°å·ããåã«ãå°éå®¶ã«ãã確èªã ãã©ã·ããã¹ã¿ãŒãããã±ãŒãžãPOPãªã©ã«æ²èŒããQRã³ãŒãã«ã€ããŠã次ã®ãããªäžå®ã¯ãããŸãããã ç¡æããŒã«ã§äœæããQRã³ãŒãã䜿çšããŠãã 誰ãäœæããããŒã¿ãªã®ãåãããªã äžå°ã®ã¹ããŒããã©ã³ã§ãã確èªããŠããªã æ ¡æ£å·ãã§èªã¿åã確èªãããŠããªã 倧éå°å·ãäºå®ããŠããã倱æãèš±ãããªã ã¯ã©ã€ã¢ã³ãã«æåºã§ãã確èªäœå¶ãæŽããã äžã€ã§ãåœãŠã¯ãŸãå Žåã¯ãå
¥çš¿åã«äœææ¹æ³ãšæ€èšŒå·¥çšã確èªããããšãããããããŸãã æ ªåŒäŒç€Ÿã¢ã³ãã«ã³ãã§ã¯ãQRã³ãŒãã®äœæã»æ€èšŒã«å ãããã£ã³ããŒã³ãµã€ãã®å€éšæ€èšŒã«ã€ããŠãçžè«ãåãä»ããŠããŸã ã å°å·åŸã«åŸæããåã«ããŸãã¯æ¡ä»¶ã®å
容ãå°å·æ¡ä»¶ãå¿
èŠãªç¢ºèªç¯å²ããçžè«ãã ããã QRã³ãŒãäœæïŒæ€èšŒãµãŒãã¹ æéïŒ1å20,000åïŒçšå¥ïŒãã æäŸïŒæ ªåŒäŒç€Ÿã¢ã³ãã«ã³ã æåšå°ïŒæ±äº¬éœæž¯åºè¥¿æ°æ©2-13-6 ãã¿ããã«3é é»è©±ïŒ03-5510-8991 æ
åœïŒäžæ ç¡æçžè«äºçŽïŒ https://calendar.app.google/S7vdSYCYgvPPh8vL8
ãã£ã³ããŒã³ãµã€ãã®å
¬éåã«å¿
èŠãªã®ã¯ã å¶äœæ
åœè
ã«ããæçµç¢ºèªã ãã§ã¯ãããŸããã æ°çŸäžåãã1,000äžåèŠæš¡ã®ãã£ã³ããŒã³ã§ãå¿åãã©ãŒã ãLINE飿ºãQRã³ãŒããªã©ã«äžå
·åãèµ·ããã°ããµã€ããä¿®æ£ããã ãã§ã¯æžãŸãªãããšããããŸãã å¿åã§ããªãã£ãå©çšè
ã¯æ»ãããçºæ³šå
ã®æ
åœè
ã¯ç€Ÿå
ããã代çåºãå¶äœäŒç€Ÿã®è²¬ä»»è
ã¯ã¯ã©ã€ã¢ã³ããããã ãªãå
¬éåã«èŠã€ããããªãã£ãã®ã ããšåãããå¯èœæ§ããããŸãã ããã§æ€èšãããã®ãã å¶äœã«é¢ãã£ãŠããªã第äžè
ã«ãããµã€ãæ€èšŒã 第äžè
æ€èšŒã¯ã代çåºãå¶äœäŒç€Ÿã®ä»äºãçãããã®ãã®ã§ã¯ãããŸããã æ
åœè
ãå¶äœããŒã ã ãã§ã¯ç¢ºèªããããªã 端æ«ãOSãç»é¢ãµã€ãºãå€éšãµãŒãã¹ãšã®é£æºéšåããå
¬éåã«å¥ã®èŠç¹ã§ç¢ºèªããããã®ãä¿éºãã§ãã ç¹ã«ã次ã®ãããªæ¡ä»¶ã§ã¯æ€èšãã䟡å€ããããŸãã è€æ°ã®ã¹ããŒããã©ã³ããå¿åããããã£ã³ããŒã³ LINEãæ¬äººèªèšŒãOCRãã¬ã·ãŒãèªã¿åããªã©ã®å€éšãµãŒãã¹ãäœ¿ãæœç QRã³ãŒããçŽDMãåºé POPãååããã±ãŒãžãªã©ã«å°å·ããæ¡ä»¶ å
¬éåŸã®é害ããã©ã³ããã¯ã©ã€ã¢ã³ããšã®é¢ä¿ã«åœ±é¿ããæ¡ä»¶ æ°çŸäžå以äžã®äºç®ãåããæ
åœè
ãå質ã«ã€ããŠèª¬æè²¬ä»»ãè² ãæ¡ä»¶ ããããŸã§å€§ããªäºæ
ããªãã£ããããä»åã倧äžå€«ããšèããã®ã§ã¯ãªãã äºæ
ãèµ·ããå Žåã®åœ±é¿ããéç®ããŠãã©ããŸã§ç¢ºèªããããæ±ºããå¿
èŠããããŸãã ãã£ã³ããŒã³ãµã€ãã®å質ã¯ããªã誰ã®è²¬ä»»ãææ§ã«ãªãã®ã å
¬éåŸã®ãã©ãã«ãèµ·ããèæ¯ã«ã¯ã å質確èªã®æçµè²¬ä»»è
ãæ±ºãŸã£ãŠããªã ãšããæ§é ããããŸãã çºæ³šå
ã®ããŒã±ãã£ã³ã°æ
åœè
ã¯ãã代çåºãå¶äœäŒç€Ÿã確èªããŠããã¯ãããšèããŸãã 代çåºã®æ
åœè
ã¯ãé¢ä¿è
ã®ã¹ããŒããã©ã³ãããœã³ã³ã§äžéãåãããšã確èªããã倧ããªåé¡ã¯ãªãããã ããšå€æããŸãã å¶äœäŒç€Ÿã¯ãæå®ããã仿§ãäºç®ãšçŽæã®ç¯å²å
ã§å®è£
ããŸãããã ãã èŠç©ãããå¥çŽã«å€æ©çš®æ€èšŒãŸã§å«ãŸããŠããªããã°ã ãã¹ãŠã®ç«¯æ«ãOSã確èªããªãå¯èœæ§ãã ãããããèªåã®æ
åœç¯å²ã§ã¯ç¢ºèªããŠããŠããã ã©ããªç°å¢ã§ãå¿åå®äºãŸã§æ£åžžã«é²ããããã ããæçµçã«æ
ä¿ãã人ãããªããŸãŸãå
¬éæ¥ãè¿ããããšããããŸãã ãã®èªèã®ããããå質ä¿èšŒã®ç©ºçœã§ãã åé¡ã¯ã誰ããæãæããŠããããšã§ã¯ãããŸããã éåžžã®å¶äœé²è¡ã®äžã«ã ååãªæ€èšŒã®åœ¹å²ãšäºç®ãçµã¿èŸŒãŸããŠããªãããš ãåé¡ãªã®ã§ãã ã代çåºã«ä»»ããŠãããããšãšããå
šæ©çš®ã§ç¢ºèªãããŠãããããšã¯å¥ çºæ³šå
ã®ããŒã±ãã£ã³ã°æ
åœè
ã«ãšã£ãŠã代çåºãå¶äœäŒç€Ÿã¯éèŠãªããŒãããŒã§ãã ãããã 代çåºã«äžæ¬ããŠä»»ããŠãããããšãã£ãŠãå€ãOSãç¹æ®ãªç»é¢ãµã€ãºãè€æ°ã®ãã©ãŠã¶ãLINEå
ãã©ãŠã¶ãŸã§ç¢ºèªãããŠãããšã¯éããŸããã ããšãã°ãæ
åœè
ã®iPhoneã§æ¬¡ã®æäœãåé¡ãªãã§ãããšããŸãã çŽDMã«å°å·ãããQRã³ãŒããèªã¿åããã£ã³ããŒã³ãµã€ããéãLINEã§ãã°ã€ã³ããå¿åãã©ãŒã ãå
¥åããéä¿¡ãå®äºãã ãã®çµæããåããã®ã¯ã ãã®iPhoneããã®OSããã®ãã©ãŠã¶ããã®æäœæé ã§ã¯åãããšããããšã ã ã§ãã å¥ã®Android端æ«ã1äžä»£åã®OSãç»é¢ã®å°ããæ©çš®ãLINEå
ãã©ãŠã¶ã§ãåãããã«åããšã¯éããŸããã ãã®å Žåãå®éã«ã¯æ¬¡ã®ãããªäžå
·åãèµ·ããåŸãŸãã ç¹å®ã®æ©çš®ã§å¿åãã¿ã³ãç»é¢å€ã«é ãã ç»é¢ã暪åããã瞊åãã«æ»ããšè¡šç€ºã厩ãã LINEå
ã§ã¯åãããéåžžã®ãã©ãŠã¶ã«ç§»ããšåŠçãæ¢ãŸã æ¬äººèªèšŒã¯å®äºããã®ã«ãå¿åç»é¢ãžæ»ããªã ç¹å®ã®ãã©ãŠã¶ã§ã ããã¿ã³ãåå¿ããªã QRã³ãŒãã¯èªã¿åããããé·ç§»å
ãæ³å®ãšç°ãªã ãšã©ãŒãèµ·ããéã«ãå©çšè
ãæåããããçŽããªã ãèªåã®ç«¯æ«ã§åãããã¯ã確èªã®åºçºç¹ã«ã¯ãªããŸããããããå質ã倿ããååãªæ ¹æ ã«ã¯ãªããŸããã 代çåºã«ä»»ããŠããæ¡ä»¶ã§ãã£ãŠããã äœå°ã§ç¢ºèªããã ãã ã©ã®OSã察象ã«ããã ãã ã©ããŸã§ãéãã§ç¢ºèªããã ãã¯ãçºæ³šå
ãå¥é確èªãã¹ãé
ç®ã§ãã äžå
·åã¯ããµã€ãåäœãããããµãŒãã¹å士ã®ã€ãªãç®ãã§èµ·ãããã è¿å¹Žã®ãã£ã³ããŒã³ãµã€ãã¯ã1瀟ã§ãã¹ãŠã®æ©èœãéçºããã®ã§ã¯ãªãã è€æ°ã®å€éšãµãŒãã¹ãçµã¿åãããŠæ§ç¯ãããã±ãŒã¹ãå¢ããŠããŸãã 代衚çãªæ§æã«ã¯ã次ã®ãããªãã®ããããŸãã ãã£ã³ããŒã³ãµã€ããšå¿å管çãµãŒãã¹ LINEãšå¿åãã©ãŒã 幎霢確èªãæ¬äººç¢ºèªãµãŒãã¹ ã¬ã·ãŒããååç»åãèªã¿åãOCR ã·ãªã¢ã«ã³ãŒããããŒã³ãŒãã®èªèšŒ SNSã¢ã«ãŠã³ããšã®é£æº ããããã®ãµãŒãã¹ãåäœã§æ£åžžã«åããŠããŠãããµãŒãã¹éã®åãæž¡ãã§åé¡ãèµ·ããããšããããŸãã ããšãã°ãæ¬äººèªèšŒãµãŒãã¹åŽã§ã¯ãèªèšŒæåããšèšé²ãããŠããŠãã ãã£ã³ããŒã³ãµã€ãåŽã«çµæãæ£ããè¿ãã ãå¿åè
ãå
ãžé²ããªãããšããããŸãã ããããåé¡ã¯ã管çç»é¢ãæ©èœåäœã確èªããã ãã§ã¯èŠã€ãã«ãããã®ã§ããå©çšè
ãšåãæé ã§ã å
¥å£ããå¿åå®äºãŸã§ãéããŠæäœããå¿
èŠ ããããŸãã åŒç€ŸãèŠã€ããäžå
·åã®äºäŸ6ã€ããçŽ¹ä» ç¬¬äžè
æ€èšŒã§èŠã€ããã®ã¯ãåçŽãªèª€åã衚瀺厩ãã ãã§ã¯ãããŸããã å€éšãµãŒãã¹ãšã®é£æºãå
¥åå¶åŸ¡ããã©ãŠã¶æäœãç»åå€å®ãç»é¢é·ç§»ãªã©ã æ
åœè
ã®ç«¯æ«ã§äžåºŠåãããã ãã§ã¯èŠèœãšããããåé¡ ããããŸãã 以äžã¯ã åŒç€Ÿã®ç¬¬äžè
æ€èšŒãµãŒãã¹ ã§å®éã«èŠã€ãã£ãäºäŸã§ããæ¡ä»¶åã¯å¿ååããŠããŸãããæ¡ä»¶çš®å¥ãæ€èšŒå¯Ÿè±¡ãç°å¢æ°ãäžå
·åã®å
容ã¯ãæ€èšŒã®èŠæš¡æãåããããå
·äœçã«èšèŒããŠããŸãã æ¡ä»¶ æ€èšŒå¯Ÿè±¡ã»ç°å¢ å
¬éåã«èŠã€ãã£ãäžå
·å LINEããã¢ããªã䜿ã£ããã£ã³ããŒã³ SNSãã©ãããã©ãŒã ãã¹ããŒããã©ã³8ç°å¢ åã ã¡è¿œå åŸã«ç¹å®ã®æäœã§é¢è±ãããšãåã ã¡ç¶æ
ãè§£é€ããã ç©æµé¢é£ã®ãã£ã³ããŒã³ã·ã¹ãã Webã·ã¹ãã ãPC2ç°å¢ã»ã¹ããŒããã©ã³6ç°å¢ å¿åãã©ãŒã ã®å
¥åãã§ãã¯ã«äžå
·åããã LIFFãã©ãŠã¶ã䜿ã£ãæµéé¢é£ãã£ã³ããŒã³ SNSãã©ãããã©ãŒã ãã¹ããŒããã©ã³8ç°å¢ ãã©ãŠã¶ããã¯ã«ãã£ãŠåæœéžã§ãã 蚺æåãã£ã³ããŒã³ãµã€ã PC2ç°å¢ã»ã¹ããŒããã©ã³6ç°å¢ ç»é¢ã厩ããæ¬¡ã®ããŒãžãžé²ããã¿ã³ã衚瀺ãããªã ã·ãªã¢ã«å¿åãã£ã³ããŒã³ Webãµã€ããããŒã³ãŒããQRã³ãŒããPC2ç°å¢ã»ã¹ããŒããã©ã³6ç°å¢ ã·ãªã¢ã«ã³ãŒãã®æ¡æ°å¶åŸ¡ãæ£ããåããŠããªã ååç»åãOCRã§å€å®ããå¿åãã£ã³ããŒã³ Webãµã€ããOCRæ€èšŒç°å¢ãã¹ããŒããã©ã³10ç°å¢ å€å®ãå³ããããŠå¯Ÿè±¡ç»åãNGã«ãªãäžæ¹ãç·©ãããŠå¯Ÿè±¡å€ç»åãOKã«ãªã LINEããã¢ããªã§ã¯ãæ£åžžãªå¿åæé ã ãã§ã¯èŠã€ãããªã LINEããã¢ããªã䜿ã£ããã£ã³ããŒã³ã§ã¯ãã¹ããŒããã©ã³8ç°å¢ã§æ€èšŒããçµæã åã ã¡è¿œå åŸã«ç¹å®ã®æäœã§é¢è±ãããšãåã ã¡ç¶æ
ãè§£é€ãããåé¡ ãèŠã€ãããŸããã éåžžã®å¿åæé ã1ã2å詊ããã ãã§ã¯ãéäžé¢è±ãåã¢ã¯ã»ã¹æã®æåãŸã§ã¯åãããŸããã å®éã®å©çšè
ã¯ãéç¥ã確èªããããã«éäžã§ç»é¢ãéããããå¥ã®ã¢ããªã«ç§»åãããããŸããæ£åžžç³»ã ãã§ãªããéäžé¢è±åŸã®ç¶æ
ãŸã§ç¢ºèªããããšã§åããŠèŠã€ããåé¡ããããŸãã å¿åãã©ãŒã ã§ã¯ãéä¿¡ã§ããã ãã§ã¯äžåå ç©æµé¢é£ã®ãã£ã³ããŒã³ã·ã¹ãã ã§ã¯ãPC2ç°å¢ãã¹ããŒããã©ã³6ç°å¢ã§ç¢ºèªãããšããã å¿åãã©ãŒã ã®å
¥åãã§ãã¯ã«äžå
·å ãèŠã€ãããŸããã ãã©ãŒã ã衚瀺ãããæ£ããæ
å ±ãå
¥åããŠéä¿¡ã§ããã ãã§ã¯ãååãªç¢ºèªãšã¯ãããŸããã å¿
é é
ç®ã空æ¬ã«ããå Žåãæåæ°ãè¶
ããå Žåã圢åŒã®ç°ãªãæåãå
¥åããå Žåãªã©ã確èªããå¿
èŠããããŸãã æœéžæ©èœã§ã¯ãå
¬å¹³æ§ã«é¢ããäžå
·åãèŠã€ããããšããã LIFFãã©ãŠã¶ã䜿ã£ãæµéé¢é£ãã£ã³ããŒã³ã§ã¯ãã¹ããŒããã©ã³8ç°å¢ã§æ€èšŒããçµæã ãã©ãŠã¶ããã¯ã«ãã£ãŠåæœéžã§ããåé¡ ãèŠã€ãããŸããã èŠãç®ã«ã¯æ£åžžã§ããå©çšè
ã®æäœã«ãã£ãŠè€æ°åæœéžã§ããç¶æ
ã§ããã°ããã£ã³ããŒã³ã®å
¬å¹³æ§ãéå¶ã«ãŒã«ã«åœ±é¿ããå¯èœæ§ããããŸãã ãã®çš®ã®åé¡ã¯ãç»é¢ã®è¡šç€ºç¢ºèªã ãã§ã¯èŠã€ãããŸãããå¿ååŸã«æ»ããåèªã¿èŸŒã¿ãããåãæäœãç¹°ãè¿ããšãã£ã確èªãå¿
èŠã§ãã 衚瀺厩ãã¯ãå¿åäžèœã«çŽçµããããšããã 蚺æåãã£ã³ããŒã³ãµã€ãã§ã¯ãPC2ç°å¢ãã¹ããŒããã©ã³6ç°å¢ã§ç¢ºèªãããšããã ç¹å®ã®ç°å¢ã§ç»é¢ã厩ããæ¬¡ã®ããŒãžãžé²ããã¿ã³ã衚瀺ãããªãåé¡ ãèŠã€ãããŸããã 衚瀺厩ããšãããšãèŠãç®ã ãã®è»œåŸ®ãªåé¡ã«æãããããããŸããã ããããéèŠãªãã¿ã³ãç»é¢å€ã«é ããã°ãå©çšè
ã«ãšã£ãŠã¯ãå¿åã§ããªããã蚺æãå®äºã§ããªãããšããé倧ãªäžå
·åã«ãªããŸãã ã·ãªã¢ã«å¿åã§ã¯ãäžæ£ãªå
¥åãžã®å¶åŸ¡ã確èªãå¿
èŠ ã·ãªã¢ã«å¿åãã£ã³ããŒã³ã§ã¯ãWebãµã€ããããŒã³ãŒããQRã³ãŒãã察象ã«ãPC2ç°å¢ãã¹ããŒããã©ã³6ç°å¢ã§æ€èšŒããçµæã ã·ãªã¢ã«ã³ãŒãã®æ¡æ°å¶åŸ¡ãæ£ããåããŠããªãããš ãåãããŸããã æ£ããã·ãªã¢ã«ã³ãŒããå
¥åããŠå¿åã§ããããšã ãã確èªããŠããäžæ£ãªæ¡æ°ã圢åŒãžã®å¯Ÿå¿ãŸã§ã¯åãããŸããã å
¥åå€ã®å¶åŸ¡ãäžååã§ããã°ãåŸå·¥çšã®ããŒã¿åŠçãåãåãã察å¿ã«ã圱é¿ããå¯èœæ§ããããŸãã OCRã¯ã1å°ã§æåããŠãå®å¿ã§ããªã ååç»åãOCRã§å€å®ããå¿åãã£ã³ããŒã³ã§ã¯ãã¹ããŒããã©ã³10ç°å¢ã§æ€èšŒãããšããã æ£ããç»åã§ãå€å®ãå³ããããŠNGã«ãªãã±ãŒã¹ ãšã æ¬æ¥ã¯å¯Ÿè±¡å€ã®ç»åãOKã«ãªãã±ãŒã¹ ãèŠã€ãããŸããã OCRã®çµæã¯ã端æ«ã®ã«ã¡ã©æ§èœãç»åã®æãããè§åºŠãèæ¯ãåå°ãªã©ã«ãã£ãŠå€ããããšããããŸãã æ
åœè
ã®ç«¯æ«ã§äžåºŠèªèã§ãããšããŠããå©çšè
ãæã€ããŸããŸãªç«¯æ«ã§åãçµæã«ãªããšã¯éããŸããã å
¬éåŸã«çŽããŠãã倱ãããå¿åæ©äŒã¯æ»ããªã Webãµã€ãã®äžå
·åã¯ãå
¬éåŸã§ãä¿®æ£ã§ããŸãã ãã ãã äžå
·åãèµ·ããäºå®ãŸã§æ¶ããããã§ã¯ãããŸããã ããšãã°ã3æ¥éã®å¿åæéäžã«ãäžéšã®Android端æ«ã ãå¿åãã¿ã³ã衚瀺ãããªãã£ããšããŸãã ç¿æ¥ã«ä¿®æ£ã§ãããšããŠãã ãã®éã«å¿åã諊ãã人ãå床ã¢ã¯ã»ã¹ããŠãããä¿èšŒã¯ãããŸããã åãåããçªå£ãžã®é£çµ¡ãSNSäžã§ã®ææãå¿åæéã®å»¶é·ãæ¯åãéå¶ã«ãŒã«ã®å調æŽãå¿
èŠã«ãªãããšããããŸãã æ°çŸäžåèŠæš¡ã®ãã£ã³ããŒã³ã§ããã°ãåé¡ã¯ä¿®æ£è²»çšã ãã§ã¯ãããŸããã çºæ³šå
ã®æ
åœè
ã«ã¯ã 瀟å
ãžã®èª¬æãæ±ããããŸãã 代çåºãå¶äœäŒç€Ÿã®è²¬ä»»è
ã«ã¯ã ã¯ã©ã€ã¢ã³ãã«å¯ŸããŠçµç·¯ãšåçºé²æ¢çã説æããå¿
èŠ ãçããŸãã çŽDMãæ°äžéãæ°åäžéçºéããåŸã«QRã³ãŒãã®é·ç§»å
ã«åé¡ãèŠã€ãã£ãå ŽåãWebãµã€ãã ãçŽãã°çµãããšã¯éããŸããããã§ã«å°å·ããçºéããåªäœã¯å·®ãæ¿ããããªãããã§ãã ãã©ã³ãæœçã§ã¯ãæè¡çã«ã¯å°ããªäžå
·åã§ããå©çšè
ããèŠãã°ã å¿åã§ããªããã£ã³ããŒã³ ãã§ãã ã ããããã æ€èšŒè²»çšã¯åãªã远å ã³ã¹ãã§ã¯ãªããäºæ
ãèµ·ããéã®æå€±ã説æè² æ
ãæããããã®è²»çšãšããŠèããå¿
èŠããããŸãã çºæ³šå
ã確èªãã¹ããªã®ã¯ãã誰ããã©ããŸã§æ€èšŒãããã çºæ³šå
ã®ããŒã±ãã£ã³ã°æ
åœè
ãããã¹ãŠã®ç«¯æ«ãæè¡ä»æ§ãçè§£ããå¿
èŠã¯ãããŸããã 確èªãã¹ããªã®ã¯ãäž»ã«æ¬¡ã®3ç¹ã§ãã 1ïŒæ€èšŒç¯å²ãèŠç©ããã«å«ãŸããŠããã ã åäœç¢ºèªèŸŒã¿ ããšãã衚çŸã ãã§ã¯ãç¯å²ãåãããŸããã 確èªå¯Ÿè±¡ã«ã次ã®é
ç®ãå«ãŸããŠããããå
·äœçã«èãå¿
èŠããããŸãã iPhoneãšAndroidã®äž¡æ¹ æ°æ§ã®OS SafariãChromeãLINEå
ãã©ãŠã¶ ç°ãªãç»é¢ãµã€ãº 瞊åããšæšªåã QRã³ãŒãããã®é·ç§» å€éšãµãŒãã¹ãšã®é£æº ãšã©ãŒæãéäžé¢è±åŸã®æå å¿åå®äºãŸã§ã®äžé£ã®æäœ ã確èªããŸãããšããåçã§ã¯ãªããã ã©ã®ç«¯æ«ã§ãã©ã®æäœã確èªããã ããŸã§æç¢ºã«ãªã£ãŠããããéèŠã§ãã 2ïŒæçµçãªå質確èªã®è²¬ä»»è
ã誰ã å¶äœäŒç€Ÿãå®è£
ãã代çåºãé²è¡ç®¡çãããŠããŠãã æçµç¢ºèªã®æ
åœè
ãæ±ºãŸã£ãŠãããšã¯éããŸããã 誰ãåæ Œã倿ããã®ããã©ã®ãããªèšé²ãæ®ãã®ãããå
¬éåã«æ±ºããŠããå¿
èŠããããŸãã çºæ³šå
ãæçµæ¿èªè
ã§ãã£ãŠããæè¡çãªæ€èšŒãŸã§çºæ³šå
ãè¡ãå¿
èŠã¯ãããŸããã 倿ã«å¿
èŠãªæ€èšŒçµæãã誰ãçšæããã®ã ãæç¢ºã«ããããšãéèŠã§ãã 3ïŒåé¡ãèŠã€ãã£ããšãã®å€æåºæºãããã ãã¹ãŠã®äžå
·åããŒãã«ããŠããå
¬éããããšããçŸå®çã§ãªãå ŽåããããŸãã éèŠãªã®ã¯ãçºèŠããåé¡ã次ã®ããã«åé¡ãã倿ã§ããç¶æ
ã«ããããšã§ãã å¿åã§ããªããããå
¬éåã«å¿
ãä¿®æ£ãã äžéšã®ç°å¢ã ãã§èµ·ããããã圱é¿ç¯å²ã確èªãã 衚瀺äžã®è»œåŸ®ãªåé¡ãšããŠãå
¬éåŸã®ä¿®æ£ãæ€èšãã 仿§äžèš±å®¹ãããã倿èšé²ãæ®ã 第äžè
æ€èšŒã¯ãå
¬éã®å¯åŠãåæã«æ±ºãããã®ã§ã¯ãããŸããã çºæ³šå
ã代çåºãã 圱é¿ç¯å²ãšåªå
é äœã倿ããããã®ææãå¢ããåœ¹å² ãæ
ããŸãã å¶äœã»éçšåŽã«ãšã£ãŠãã第äžè
æ€èšŒã¯è²¬ä»»éãã§ã¯ãªãå質管ç 代çåºãå¶äœäŒç€Ÿã®è²¬ä»»è
ã«ãšã£ãŠãå€éšæ€èšŒãå
¥ããããšã¯ãèªç€Ÿã®æè¡åäžè¶³ãèªããããšã§ã¯ãããŸããã å¶äœæ
åœè
ã«ã¯ãäœã£ãæ¬äººã ããããèŠèœãšããããéšåããããŸãã 仿§ãçè§£ããŠãã人㯠ãç¡æèã«ãæ£ããæäœããããŸã ããã¿ã³ã®å Žæããå
¥åãã¹ãå
容ããç»é¢é·ç§»ãç¥ã£ãŠããŸãã äžæ¹ãå®éã®å¿åè
㯠æ³å®å€ã®æäœãããŸã ã å
¥åéäžã§ããŒãžãéãã ãã©ãŠã¶ã®æ»ããã¿ã³ãæŒã éä¿¡ãäžå®å®ãªç¶æ
ã§éä¿¡ãã QRã³ãŒããLINEãå¥ã®ã¢ããªããéã ç»é¢ã暪åãã«ãã å€ã端æ«ã䜿ã åããã¿ã³ãäœåºŠãæŒã å¿
é é
ç®ã空æ¬ã®ãŸãŸé²ãããšãã å¶äœã«é¢ãã£ãŠããªã第äžè
ã¯ã仿§ãç¥ããããŠããªããããããå©çšè
ã«è¿ãèŠç¹ã§ç¢ºèªã§ããŸãã ãŸãã瀟å
ã®æ
åœè
ã ãã§å€æ©çš®æ€èšŒãè¡ãå Žåã端æ«ã®æºåããã¹ãé
ç®ã®äœæãçµæã®èšé²ãä¿®æ£åŸã®å確èªã«çžå¿ã®æéãããããŸãã è€æ°æ¡ä»¶ã䞊è¡ããŠé²ããå¶äœã»éçšè²¬ä»»è
ã«ãšã£ãŠãæ€èšŒãå€éšã«æã€ããšã¯ãå質ã ãã§ãªã 瀟å
ãªãœãŒã¹ã確ä¿ããæ¹æ³ ã«ããªããŸãã çŽååŸã®äºæ
ãã¯ã©ã€ã¢ã³ãã®ä¿¡é Œãšæ
åœè
èªèº«ã®è©äŸ¡ãçŽæããç«å Žã§ããã°ãã æçµè²¬ä»»ãæã€ç¬¬äžè
ãã§ãã¯ãå€éšã«æã€ããšããèãæ¹ã«ã¯åçæ§ããããŸãã æäœéãå
¬éåã«ç¢ºèªããããã§ãã¯é
ç® ç¬¬äžè
æ€èšŒãå©çšãããã©ããã«ãããããããã£ã³ããŒã³ãµã€ãã®å
¬éåã«ã¯ãå°ãªããšã次ã®å
容ã確èªããŠããå¿
èŠããããŸãã 端æ«ãšè¡šç€º iPhoneãšAndroidã®è€æ°æ©çš®ã§ç¢ºèªããã æ°ããOSã ãã§ãªããå©çšè
ãäžå®æ°ããæ§ããŒãžã§ã³ã§ã確èªããã ç»é¢ãµã€ãºã®å°ãã端æ«ã§ããéèŠãªãã¿ã³ã衚瀺ãããã 瞊åããšæšªåãã§è¡šç€ºã厩ããªãã æåãç»åãéãªã£ãŠããªãã æ¡å€§è¡šç€ºãæåãµã€ãºå€æŽã§æäœäžèœã«ãªããªãã å¿åã®äžé£ã®æµã QRã³ãŒããåºåããæ£ããããŒãžã«ç§»åããã å¿åéå§ããå®äºç»é¢ãŸã§ãå®éã«éããŠæäœããã å¿
é é
ç®ãæåæ°ã®ãã§ãã¯ãæ£åžžã«åãã äºééä¿¡ãéè€å¿åãèµ·ããªãã ãšã©ãŒåŸã«å©çšè
ãæäœãåéã§ããã ãã©ãŠã¶ããã¯ãåèªã¿èŸŒã¿ã§äžæ£ãªç¶æ
ã«ãªããªãã å€éšãµãŒãã¹ãšã®é£æº LINEãããµã€ããžã®é·ç§»ã確èªããã èªèšŒåŸã«æ£ããç»é¢ãžæ»ããã OCRãç»åèªèãè€æ°ã®æ®åœ±æ¡ä»¶ã§ç¢ºèªããã å€éšãµãŒãã¹åŽã§å€±æããå Žåã®è¡šç€ºã¯åãããããã éä¿¡ãåããå Žåãéäžé¢è±åŸã®æåã確èªããã å€éšãµãŒãã¹ããè¿ããããšã©ãŒãé©åã«åŠçãããã QRã³ãŒããšçŽåªäœ å°å·åã®ããŒã¿ã ãã§ãªããå®éã®å°å·ç©ã§ãèªã¿åã£ãã å°ãããããµã€ãºãäœãã³ã³ãã©ã¹ãã«ãªã£ãŠããªãã iPhoneãšAndroidã®äž¡æ¹ã§èªã¿åããã èªã¿åãåŸã«æ£ããURLãžé·ç§»ããã URL倿Žããªãã€ã¬ã¯ãèšå®ã«åé¡ããªãã çŽé¢äžã®æ¡å
ãšé·ç§»å
ã®å
容ãäžèŽããŠããã 確èªäœå¶ å¶äœè
æ¬äººä»¥å€ã確èªããã 確èªãã端æ«ãOSãæ¥æãèšé²ããã çºèŠããåé¡ãšå¯Ÿå¿çµæãæ®ããã ä¿®æ£åŸã«å確èªããã 誰ãå
¬éãæ¿èªããããæç¢ºã«ããã ãã¹ãŠã®æ¡ä»¶ã«ãå€§èŠæš¡ãªæ€èšŒãå¿
èŠãªããã§ã¯ãªã 第äžè
æ€èšŒã¯ã確èªé
ç®ãå¢ããã°å¢ããã»ã©è²»çšãšæéãããããŸãã ãã®ããã ãã¹ãŠã®ãã£ã³ããŒã³ã§æå€§èŠæš¡ã®æ€èšŒãè¡ãå¿
èŠã¯ãããŸããã æ¡ä»¶ã®ãªã¹ã¯ã«å¿ããŠç¯å²ã決ãã ã®ãçŸå®çã§ãã ããšãã°ãæ
å ±ãæ²èŒããã ãã®å°èŠæš¡ãªããŒãžã§ããã°ãäž»èŠç«¯æ«ã§ã®è¡šç€ºç¢ºèªãäžå¿ã«ããæ¹æ³ããããŸãã äžæ¹ãæ¬¡ã®æ¡ä»¶ãéãªãæ¡ä»¶ã§ã¯ã確èªç¯å²ãåºãã倿ãå¿
èŠã§ãã å¿åè
æ°ãå€ã ãã£ã³ããŒã³äºç®ã倧ãã å¿åæéãçã ãã¬ããæ°èãåºé ãçŽDMãªã©è€æ°åªäœã§åç¥ãã QRã³ãŒãã倧éã«å°å·ãã LINEãOCRãæ¬äººèªèšŒãªã©ãå©çšãã æœéžãã·ãªã¢ã«ã³ãŒãã®ä»çµã¿ããã æ¯åéé¡ã倧ãã äžå
·åçºçæã®ãã©ã³ã圱é¿ã倧ãã åãåããçªå£ãžã®è² æ
ã倧ãã ãã£ã³ããŒã³ãµã€ãã®å€éšæ€èšŒã¯ãå
容ã«ãã£ãŠç°ãªããŸããã 1æ¡ä»¶30äžåãã50äžåçšåºŠ ãäžã€ã®ç®å®ã§ããäºç®ã«å¿ããŠãç«¯æ«æ°ã確èªç¯å²ãçµã£ãç°¡æçãªæ€èšŒãéžæããããšãã§ããŸãã éèŠãªã®ã¯ãã30äžåãããããé«ããã1,000äžåã®æ¡ä»¶ã ããå¿
ãå¿
èŠããšäžåŸã«å€æããããšã§ã¯ãããŸããã äºæ
ãèµ·ãããšãã«å€±ãéé¡ãå¿åæ©äŒã瀟å
è©äŸ¡ãã¯ã©ã€ã¢ã³ããšã®ä¿¡é Œãèãã æ€èšŒè²»çšãšã®ãã©ã³ã¹ãåãããš ã§ãã ããšãã°ã1,000äžåèŠæš¡ã®ãã£ã³ããŒã³ã§30äžåã®æ€èšŒãå
¥ããå Žåã æ€èšŒè²»çšã¯å
šäœäºç®ã®3ïŒ
ã§ãã ãã®3ïŒ
ããåãªã远å è²»çšãšèŠããã å
¬éåŸã®äºæ
ãæžããã説æè²¬ä»»ãæããããã®ä¿éºãšèŠãã ã§ã倿ã¯å€ãããŸãã ãã©ãã«ãé²ãããã«ãçŸå Žã§åãã3ã€ã®æ¹æ³ ãã£ã³ããŒã³ãµã€ãã®å質ãªã¹ã¯ã«å¯ŸããŠãå®åäžã¯æ¬¡ã®3ã€ã®æ¹æ³ããããŸãã 1ïŒç€Ÿå
ã«ãŒã«ã決ãã ããšãã°ã次ã®ãããªã«ãŒã«ã§ãã QRã³ãŒããæ
åœè
å人ã®å€æã ãã§äœæããªã å
¬éåã«å¿
ãå¶äœè
以å€ã確èªãã å¿åå®äºãŸã§ã®ç»é¢é²ç»ãæ®ã 確èªãã端æ«ãšOSãäžèЧåãã äžå®éé¡ä»¥äžã®æ¡ä»¶ã¯ç¬¬äžè
æ€èšŒãå
¥ãã LINEãOCRãæ¬äººèªèšŒãäœ¿ãæ¡ä»¶ã¯é£æºéšåãéãã§ç¢ºèªãã ã«ãŒã«ãããã°ãæ
åœè
ã®çµéšãå¿ããã«å·Šå³ããã«ãããªããŸãã æ¡ä»¶ããšã«å€æããã®ã§ã¯ãªããã äºç®500äžåä»¥äž ãã çŽåªäœãžã®QRå°å·ãã ãã å€éšãµãŒãã¹é£æºãã ããšãã£ãæ¡ä»¶ã§åºæºãèšããæ¹æ³ããããŸãã 2ïŒå¶äœã«é¢ãã£ãŠããªã第äžè
ãæ€èšŒãã 第äžè
ãã 倿©çš®ãå€éšé£æºãéäžé¢è±ããšã©ãŒæäœãŸã§å«ããŠç¢ºèªããŸãã å¶äœè
ã®æã蟌ã¿ãé¿ããããã»ãã瀟å
æ
åœè
ã端æ«ãéããŠç¢ºèªããè² æ
ãæžãããŸãã ãã¹ãŠãå€éšã«ä»»ããå¿
èŠã¯ãããŸããã 衚瀺確èªã¯ç€Ÿå
ã§è¡ãã LINE飿ºãOCRãå¿åå®äºãŸã§ã®ã·ããªãªã ãã第äžè
ã«äŸé Œãã ãªã©ããªã¹ã¯ã®é«ãéšåã«çµãæ¹æ³ããããŸãã 3ïŒçµæã蚌æ ãšããŠæ®ã æ€èšŒã¯ã宿œããã ãã§ãªãèšé²ãæ®ãããšãéèŠã§ãã ã©ã®ç«¯æ«ã§ç¢ºèªããã ã©ã®OSã䜿ã£ãã ã©ã®æäœã詊ããã äœãèŠã€ãã£ãã ã©ã®åé¡ãä¿®æ£ããã äœã蚱容ããŠå
¬éããã ä¿®æ£åŸã«èª°ãå確èªããã å
¬éåŸã«åãåããããã£ãéããã確èªããã¯ãã§ããã§ã¯ãªãã宿œå
容ã説æã§ããŸãã ããã¯è²¬ä»»ãä»ç€Ÿã«ç§»ãããã®ãã®ã§ã¯ãããŸããã é¢ä¿è
ãåççãªå€æãããããšã瀺ãããã®èšé² ã§ãã QRã³ãŒãã®äºæ
ã¯ãå
¬éåŸã§ã¯ãªãå°å·åŸã«çºèŠãã ãã£ã³ããŒã³ãµã€ãã®äžã§ãã QRã³ãŒãã¯ç¹ã«æ³šæãå¿
èŠ ã§ãã Webãµã€ãã®è¡šç€ºåŽ©ãã¯å
¬éåŸã§ãä¿®æ£ã§ããŸããã çŽDMãåºé POPãååããã±ãŒãžãªã©ã«å°å·ããQRã³ãŒãã¯ãç°¡åã«ã¯å·®ãæ¿ããããŸããã ãããããªã¹ã¯ã«ã¯ã次ã®ãããªãã®ããããŸãã QRã³ãŒãã«èšå®ããURLãééã£ãŠãã ãã¹ãç°å¢ã®URLãå
¥ã£ããŸãŸã«ãªã£ãŠãã å
¬éåã«ã¯åãããããªãã€ã¬ã¯ãèšå®ã®å€æŽåŸã«é·ç§»ããªããªã£ã å°å·ãµã€ãºãå°ããã端æ«ã«ãã£ãŠèªã¿åããªã èæ¯è²ãšã®ã³ã³ãã©ã¹ãã匱ããèªã¿åãã«å€±æãã çŽé¢ã®æãç®ãå
æ²¢ã«ãã£ãŠèªã¿åãã«ãã ççž®URLã転éãµãŒãã¹ã®èšå®ã«åé¡ããã QRã³ãŒãå
ã®ããŒãžãã¹ããŒããã©ã³ã§æ£ãã衚瀺ãããªã QRã³ãŒããã®ãã®ãèªã¿åããããšãšããã®å
ã§å¿åãå®äºã§ããããšã¯å¥ã§ãã å°å·åã®ããŒã¿ã ãã§ãªããå®ç©ã«è¿ãç¶æ
ã§QRã³ãŒããèªã¿åãããã®ãŸãŸå¿åå®äºãŸã§é²ãããã確èªããå¿
èŠããããŸãã äžåºŠQRã³ãŒãäºæ
ãçµéšããæ
åœè
ã»ã©ãæ¬¡ã®æ¡ä»¶ã§ã¯ãåãããšãèµ·ãããªãããã«ãã©ããŸã§ç¢ºèªãã¹ããããèããŸãã 第äžè
æ€èšŒã¯ããã®åçºé²æ¢çã®äžã€ã§ãã 第äžè
æ€èšŒã¯ãäºæ
ãèµ·ããŠããæ¢ããµãŒãã¹ã§ã¯ãªã ãã£ã³ããŒã³ãµã€ãã®æ€èšŒãµãŒãã¹ã¯ã å¿
èŠæ§ãåããããããµãŒãã¹ã§ã¯ãããŸãã ã æ
åœè
ãèªåããã第äžè
æ€èšŒãå¿
èŠã ããšæ€çŽ¢ããã±ãŒã¹ã¯å€ããããŸãããå€ãã®å Žåã代çåºãå¶äœäŒç€Ÿã確èªããŠãããšèããŠããããã§ãã å¿
èŠæ§ã匷ãæèããã®ã¯ãäžåºŠäºæ
ãçµéšããåŸã§ãã çŽDMã®QRã³ãŒãããæ£ããããŒãžãžé·ç§»ããªãã£ã äžéšã®ã¹ããŒããã©ã³ã§å¿åãã¿ã³ã衚瀺ãããªãã£ã LINEèªèšŒåŸã«å¿åç»é¢ãžæ»ããªãã£ã å¿åãã©ãŒã ã®å¶åŸ¡ã«åé¡ããã£ã OCRã®å€å®ã§åãåãããçžæ¬¡ãã ããããçµéšããããšããæ¬¡åã¯ã©ãããã°é²ãããããèããããã«ãªããŸãã ãããã æ¬æ¥ã¯äºæ
ã®åŸã§ã¯ãªããå
¬éåã«æ€èšãã¹ããã®ã§ãã æ°çŸäžåãã1,000äžåèŠæš¡ã®æœçã§ã30äžåãã50äžåçšåºŠã®æ€èšŒãå
¥ãããã©ããã¯ãåãªãå¶äœè²»ã®è¿œå ã§ã¯ãããŸããã ãã®éé¡ã§ãã¹ãŠã®äºæ
ãé²ãããšã¯éããŸãããäžæ¹ã§ã æ
åœè
ã®ç«¯æ«ã ãã§ã¯èŠã€ãããªãã£ãåé¡ããå
¬éåã«çºèŠã§ããå¯èœæ§ ããããŸãã ã 代çåºã«ä»»ããŠãããã倧äžå€« ãã§ã¯ãªãã代çåºãå¶äœäŒç€ŸãšååããªãããæåŸã«å¥ã®ç®ãå
¥ããã ãããã倧åãã£ã³ããŒã³ãéå¶ããæ
åœè
ã«ãšã£ãŠã®çŸå®çãªä¿éºã«ãªããŸãã ãã£ã³ããŒã³å
¬éåã«ããŸã確èªããŠããããããš çŸåšé²è¡äžã®æ¡ä»¶ãããå Žåã¯ã代çåºãå¶äœäŒç€Ÿã«æ¬¡ã®ããã«èããŠã¿ãŠãã ããã ä»åã®æ¡ä»¶ã§ã¯ãã©ã®ç«¯æ«ãšOSã§ã誰ããã©ããŸã§ç¢ºèªããŸããã LINEãèªèšŒãµãŒãã¹ãšã®é£æºããå¿åå®äºãŸã§éããŠç¢ºèªããŸããã QRã³ãŒãã¯å®éã®å°å·ç©ã§èªã¿åããŸããã 確èªçµæã¯ãèšé²ãšããŠæ®ããŸããã æç¢ºãªåçãåŸããããªããå¿
èŠãªäœå¶ãæŽã£ãŠããå¯èœæ§ããããŸãã äžæ¹ã§ããæ
åœè
ã®ã¹ããŒããã©ã³ã§ç¢ºèªããŸãããå¶äœäŒç€ŸãèŠãŠããŸãããšãã£ãåçã ãã§ããã°ã æ€èšŒç¯å²ãããäžæ®µå
·äœåããæ¹ããã ãããããŸããã ãã¹ãŠãå®ç§ã«ç¢ºèªããããšãç®çã§ã¯ãããŸããã æ¡ä»¶ã®èŠæš¡ãšåœ±é¿ã«å¿ããŠã èŠèœãšããŠã¯ãããªãéšåãæ±ºããããšã誰ãæçµç¢ºèªãæ
ãã®ããæç¢ºã«ããããšã ãããŠã 確èªããçµæã蚌æ ãšããŠæ®ãããšã ããããå
¬éåŸã®ãã©ãã«ãæžããããã®ç¬¬äžæ©ã§ãã ç£ä¿®ã»ãåãåãã æ¬è³æã¯ã ãœãããŠã§ã¢ãã¹ãã»ç¬¬äžè
æ€èšŒãå°éãšããæ ªåŒäŒç€Ÿã¢ã³ãã«ã³ã ãç£ä¿®ãäœæããŸããã åœç€Ÿã§ã¯ã QRã³ãŒãã®äœæã»æ€èšŒããã£ã³ããŒã³ãµã€ãã®å€éšæ€èšŒ ã«ã€ããŠããçžè«ãæ¿ã£ãŠããŸãããäºç®ãæ¡ä»¶ã®èŠæš¡ã«å¿ããŠãç¯å²ãçµã£ãç°¡æãªå¯Ÿå¿ããå¯èœã§ãã ãµãŒãã¹ ãã£ã³ããŒã³ãµã€ãã»å€éšé£æºæ€èšŒ æŠèР倿©çš®ã»é£æºã®ã·ããªãªæ€èšŒãäŸ¡æ Œã¯æ€èšŒå
容ã«ããéœåºŠèŠç©ã1æ¡ä»¶30äžåã50äžåçšåºŠãç°¡æçãå«ãäºç®ã«å¿ããŠå¯Ÿå¿ã æ ªåŒäŒç€Ÿã¢ã³ãã«ã³ã æ±äº¬éœæž¯åºè¥¿æ°æ©2-13-6 ãã¿ããã«3é TELïŒ03-5510-8991 æ
åœïŒäžæ 以äžããç¡æçžè«ã®ãäºçŽãå¯èœã§ãã https://calendar.app.google/S7vdSYCYgvPPh8vL8

















