Androidの機能フラグで遊んで


あなたがKotlinベースのモバイルアプリケーションを構築した仮想シナリオを再生し、特定の基準に基づいて全体的なユーザーエクスペリエンスをカスタマイズしたいと思います.あなたは完璧なアイデアを持っているが、その後、この質問はどこにポップアップ:今何?人々は、私がKotlinで特徴旗の概念をあなたに紹介するのを許します.

機能フラグについてのほとんど言葉
エーfeature flag , また、機能のトグルとして知られている場合は、有効または無効に別の機能を可能にするテクニックです.製品の所有者として、アプリケーションのランタイム中にオンとオフの特定の機能を切り替えることができます.そして、モバイルアプリケーションを展開するので、問題がモバイルアプリケーションで発生するときに、Webアプリケーションを展開するように簡単ではないため、機能フラグは、長いアプリケーションの承認プロセスを避けるためのソリューションです.
今日の私の焦点は、Android用のConfigCatの機能フラグシステムを実装することです.ConfigCat 提供detailed documentation Java、Pythonを含む様々なテクノロジでの機能フラグの実装.NETと他の多く.完全なリストをチェックしてくださいhere .

Androidのサンプルアプリケーションについてのほとんど言葉
参照の容易さのために、我々は少し遊んでいますcoffee shop app このチュートリアルでは.あなたが恐怖の前に、私はそれがほんの数ページとメインメニュー画面で構成さを教えてみましょう.言い換えれば、それは人々がコーヒーショップから飲料を注文することができますシンプルなモバイルアプリケーションです.私が助けるためにここにいるので、簡単なpeasy.

なぜAndroidのアプリで機能フラグを使用するのは良いアイデアですか?
私は、単純さの大ファンです.私はホリデーシーズン中にアプリのメニューの別のバージョンを使用する予定です.たぶん、テーマを変更する理由は?どちらでも構いませんが、ConfigCatの機能管理メカニズムはここにあります.
今のスペシャルメニューに固執しましょう.私が作成し、有効にするので、適切に呼ばれるああHoliday フラグを指定します.
  • 新しい値、メニューの特別な季節のリスティングに固有のフラグの値がtrueのときに適応
  • フラグの値が';false ';ときにアプリケーションは、通常のメニューを利用してください.
  • 注:物事を沿って速度を上げるために、私も時折ConfigCat Android (Kotlin) SDK docs .

    必要条件
    コーディングする前に、私は私のアプリはsupported Android SDK version (この場合少なくとも18個).Java 1.8以上は同様に必須です.The build.gradle ファイルは、タスク全体を私に助言します.
    compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    
    さらに、機能フラグを生成し、任意のアプリケーションで展開するという点では、ConfigCatアカウントを指定する必要があります.だから、チェックアウトhomepage 登録する.心配することは何もありませんが、立ち往生する場合は、実際のConfigCat開発者と話をすることができますし、追加の指示を取得するby heading over to Slack . 私はすでにアカウントを持っているので、私はこの部分をスキップします.

    Android携帯アプリをConfigCatに接続する方法?
    最初のステップはConfigCat Android (Kotlin) SDK プロジェクトに
    implementation 'com.configcat:configcat-android-client:6.+'
    
    必要に応じてインポートします.
    import com.configcat.*
    
    ConfigCat SDKは、全体の機能フラグシステムのバックボーンとして機能します.あなたの機能フラグを作成する必要がありますConfigCat Dashboard その後、機能フラグの評価は、SDKのクライアント側で局所的に行われます.したがって、機能フラグを毎回設定する要求を待つ必要はありませんgetValue() の値はローカルキャッシュから提供されます.あなたは約polling modes and caching here .

    クライアントと特別な値
    この例では、単一のコンポーネントは、機能フラグ機構を実装するが、それをスケールし、あなたの全体のアプリケーションのためにそれを自由に感じる.私は今のために物事を簡単にしたいので、私が必要とするすべてはRecyclerView ロケーション説明home_fragment.xml とアダプターRecyclerAdapter.kt クラス.
    まず、ConfigCatクライアントを作成します.
    val client = ConfigCatClient("#YOUR-SDK-KEY#")
    
    注意:プレースホルダYOUR-SDK-KEY ConfigCatのサービスでアプリケーションを接続するので、ダッシュボードから一意に生成されたSDKキーで置き換えることを確認してください.

    val sdk = holder.itemTitle.context.getString(R.string.sdk)
    val client = ConfigCatClient(sdk)
    
    私がクライアントを確立した今、私は必要ですholiday アプリケーションの状態を評価する機能フラグの値off , ホリデーシーズンは終わり、消費者は通常の特典を購入するかもしれません.私はそれ以外のお祝いメニューをアクティブにします.
    フラグの値を取得するにはいくつかの方法がありますが、単純性のために、ユーザーのターゲットを指定しないでデフォルトモードを使用します.しかし、あなたはread more about user targeting 別のユーザーの異なる機能フラグ値を取得する場合.
    var holiday = client.getValue(Boolean::class.java, "holiday", false)
    
    The getValue 関数は、実際の特徴フラグ値を返すので、機能フラグの名前とデフォルト値とともに呼び出されます.上の例ではholiday 変数現在のフラグの値を保持します.フラグが見つからないか、ローカルキャッシュが空であるならば、デフォルト値は返されます.

    最後ではなく
    残っているのは、onBindViewHolder 関数はRecyclerAdapter.kt 属性フラグ値によって異なります.値がtrueであるならば、休日メニューは使われます.これを達成するために、メニューの通常のレイアウトを変更するために以下のリストを使用します.
    if(holiday == true) {
        holder.itemTitle.text = titlesH[position]
        holder.itemIngredients.text = ingredientsH[position]
        holder.itemPrice.text = pricesH[position]
        Glide.with(holder.itemView)
            .load(imagesH[position])
            .into(holder.itemImage)
    } else {
        holder.itemTitle.text = titles[position]
        holder.itemIngredients.text = ingredients[position]
        holder.itemPrice.text = prices[position]
        Glide.with(holder.itemView)
            .load(images[position])
            .into(holder.itemImage)
    }
    
    私のダッシュボードの休日機能フラグを切り替えるたびに、メニュー項目はそれに応じて変更されます.


    概要
    人々は、このチュートリアルのキーステップを要約しましょう
  • クリエイトa ConfigCat account あなたがまだ1を持っていないならば.
  • インストールConfigCat Android (Kotlin) SDK そして、機能フラグサービスにアプリケーションをリンクするクライアントを作成します.
  • 機能フラグの後ろにあなたの望ましい機能を実装してください.
  • ConfigCatダッシュボードの機能を切り替えるhttps://app.configcat.com ] いつでも、再生ストアに公開後も.
  • 最後には、少なくとも、次のことを確認してくださいConfigCat's guidelines 追加のヘルプ.

  • もっと学ぶ
  • 機能フラグのトピックで、より素晴らしい記事については、チェックアウトConfigCat's blog .
  • ソーシャルメディア上でConfigCatに参加して最新の技術動向と連絡を取り合う.ConfigCatを見つけます.Facebook , and GitHub .
  • ゲットthe sample app Githubについて