SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
2018-07-26 potatotips #53 @cattaka_net
sharedUserIdを使った
俺得開発ツールの作り方
Takao Sumitomo
2018-07-26 potatotips #53 @cattaka_net
自己紹介
●
住友 孝郎(Takao Sumitomo)
– Wantedly 所属
– Androidアプリを主に担当
– @cattaka_net
●
Go書かないけどゴーファーが好き
2018-07-26 potatotips #53 @cattaka_net
名刺管理アプリ作ってます
みなさん、
アプリの開発用画面、
どさくさに紛れて作ってるよね
設定画面とかにコッソリ
内部リリースバージョンや
特定条件で出るようにしてるよね
●
Product Flavorとか
●
ユーザーIDとか
僕らも内部リリース版は何個かある
←Production版(正式版)
RC版(リリース候補)→
←QA版(テスト環境)
←Sandbox版(壊してもいい環境)
Develop版(テスト環境)→
※:アイコンはリリース版の色相を適当に回してる
課題
APIチームより、
開発のためにサーバーの接続先を変えたい
サーバーが沢山あるので、
1つだけ手元に繋ぎたい
アプリ
Server3Server2Server1
アプリ
Server3Server2Server1
ローカルのマシンで
Server3
通常時 サーバーの開発時
設定画面に
書き換え機能を作った
解決
課題
初回の起動の
プロセスの立ち上がり時の
通信先を変えたい
※:起動直後のA/Bテストとかに使う
初回の起動
プロセスの立ち上がり時
無理だ、、、
どうしよう、、、
そういえば sharedUserId ってあったよね
sharedUserId について
●
AndroidのLinuxのユーザーIDを共有する仕組み
●
通常、アプリごとに
異なる1つのユーザーIDが割り当てられる
●
意図的に同じユーザーIDにできる
開発ツールを別アプリにして、
同じユーザーIDにしたらいいよね
開発ツール爆誕
People Dev Tool
アプリの設定値を強引に書き換えるぜ
できること
アプリを起動しなくても
●
各種プリファレンスの
書き換え
●
エンドポイントの切り替え
その他
●
アプリの起動
●
プロセスの強制停止
●
OS側の設定画面を直接開く
超便利
実装の話
sharedUserId
●
それぞれのflavorのAndroidManifest.xmlに
指定を入れる
別アプリのSharedPreferencesにアクセス
●
createPackageContext メソッドで別アプリのContextを作る
●
その Context からSharedPreferences を得る
public SharedPreferences getSharedPreferences(PackageInfo info, String name, int mode)
throws NameNotFoundException {
Context targetContext = createPackageContext(info.packageName, mode);
return targetContext.getSharedPreferences(name, mode);
}
注意点
●
同一の署名であること
– 開発用の keystore は共有してる
●
sharedUserIdの指定は再インストールが必要
– なので飽くまで開発版のみ
ちなみに
アイコンもちゃんと作りました
オリジナル画像: https://coder.today/first-steps-in-learning-golang-d0f3dbb3b6d7
ゴーファー可愛いよね
というわけで
欲しいものは自分で作る
エンジニアだしね
2018-07-26 potatotips #53 @cattaka_net
ご清聴ありがとうございました

Weitere ähnliche Inhalte

Was ist angesagt?

Android SDK Toolsのおさらい
Android SDK ToolsのおさらいAndroid SDK Toolsのおさらい
Android SDK Toolsのおさらい
Tomoki YAMASHITA
 

Was ist angesagt? (20)

Android SDK Toolsのおさらい
Android SDK ToolsのおさらいAndroid SDK Toolsのおさらい
Android SDK Toolsのおさらい
 
bloom ではじめる自作 ROS パッケージのリリース
bloom ではじめる自作 ROS パッケージのリリースbloom ではじめる自作 ROS パッケージのリリース
bloom ではじめる自作 ROS パッケージのリリース
 
Android dev summit 2019 recap
Android dev summit 2019 recapAndroid dev summit 2019 recap
Android dev summit 2019 recap
 
ちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜ
 
Rootage.co.jp技術共有
Rootage.co.jp技術共有Rootage.co.jp技術共有
Rootage.co.jp技術共有
 
開発を効率的に進めるられるまでの道程
開発を効率的に進めるられるまでの道程開発を効率的に進めるられるまでの道程
開発を効率的に進めるられるまでの道程
 
20190921 Google Apps Script(GAS) メインで Google Assistant アプリを作った話
20190921 Google Apps Script(GAS) メインで Google Assistant アプリを作った話20190921 Google Apps Script(GAS) メインで Google Assistant アプリを作った話
20190921 Google Apps Script(GAS) メインで Google Assistant アプリを作った話
 
リンク機構を有するロボットをGazeboで動かす
リンク機構を有するロボットをGazeboで動かすリンク機構を有するロボットをGazeboで動かす
リンク機構を有するロボットをGazeboで動かす
 
ネットワークの切り替えを感知する方法
ネットワークの切り替えを感知する方法ネットワークの切り替えを感知する方法
ネットワークの切り替えを感知する方法
 
Android6.0の機能まとめ 実機でサンプルを動かしてみた
Android6.0の機能まとめ 実機でサンプルを動かしてみたAndroid6.0の機能まとめ 実機でサンプルを動かしてみた
Android6.0の機能まとめ 実機でサンプルを動かしてみた
 
Goだけでモバイルアプリを作る
Goだけでモバイルアプリを作るGoだけでモバイルアプリを作る
Goだけでモバイルアプリを作る
 
「Camelog」Android開発秘話
「Camelog」Android開発秘話「Camelog」Android開発秘話
「Camelog」Android開発秘話
 
Annotate Windows API !
Annotate Windows API !Annotate Windows API !
Annotate Windows API !
 
参加したセッションの ピックアップ
参加したセッションのピックアップ参加したセッションのピックアップ
参加したセッションの ピックアップ
 
過去に自作したGoプロダクトの紹介 - Goオールスターズ
過去に自作したGoプロダクトの紹介 - Goオールスターズ過去に自作したGoプロダクトの紹介 - Goオールスターズ
過去に自作したGoプロダクトの紹介 - Goオールスターズ
 
VS Code Day 2021 Recap
VS Code Day 2021 RecapVS Code Day 2021 Recap
VS Code Day 2021 Recap
 
[potatotips #18] Android M Developer Preview & Wear 最新トピック
[potatotips #18] Android M Developer Preview & Wear 最新トピック[potatotips #18] Android M Developer Preview & Wear 最新トピック
[potatotips #18] Android M Developer Preview & Wear 最新トピック
 
goパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現するgoパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現する
 
テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜
 
GoによるiOSアプリの開発
GoによるiOSアプリの開発GoによるiOSアプリの開発
GoによるiOSアプリの開発
 

Ähnlich wie sharedUserIdを使った俺得開発ツールの作り方

【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
モノビット エンジン
 

Ähnlich wie sharedUserIdを使った俺得開発ツールの作り方 (20)

ユニバーサル Windowsプラットフォーム(UWP)アプリの開発と配布
ユニバーサル Windowsプラットフォーム(UWP)アプリの開発と配布ユニバーサル Windowsプラットフォーム(UWP)アプリの開発と配布
ユニバーサル Windowsプラットフォーム(UWP)アプリの開発と配布
 
Inside Android N
Inside Android NInside Android N
Inside Android N
 
Practical game development with Stingray
Practical game development with StingrayPractical game development with Stingray
Practical game development with Stingray
 
第13回 Tokyo Jazug Night LT
第13回 Tokyo Jazug Night LT第13回 Tokyo Jazug Night LT
第13回 Tokyo Jazug Night LT
 
Visual Studio App CenterでAndroid開発にCI/CDを導入しよう
Visual Studio App CenterでAndroid開発にCI/CDを導入しようVisual Studio App CenterでAndroid開発にCI/CDを導入しよう
Visual Studio App CenterでAndroid開発にCI/CDを導入しよう
 
Visual Studio App Centerで始めるCI/CD(Android)
Visual Studio App Centerで始めるCI/CD(Android)Visual Studio App Centerで始めるCI/CD(Android)
Visual Studio App Centerで始めるCI/CD(Android)
 
Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発
 
Developer's Summit 夏 EnterpriseTED 資料
Developer's Summit 夏 EnterpriseTED 資料Developer's Summit 夏 EnterpriseTED 資料
Developer's Summit 夏 EnterpriseTED 資料
 
Surface Go
Surface GoSurface Go
Surface Go
 
(beta)アプリを成長させるためのログ取りとログ解析に必要なこと
(beta)アプリを成長させるためのログ取りとログ解析に必要なこと(beta)アプリを成長させるためのログ取りとログ解析に必要なこと
(beta)アプリを成長させるためのログ取りとログ解析に必要なこと
 
OPTPiX SpriteStudioと他社ツール比較(真)資料2 - 株式会社ウェブテクノロジ - GTMF 2018 OSAKA / TOKYO
OPTPiX SpriteStudioと他社ツール比較(真)資料2 - 株式会社ウェブテクノロジ - GTMF 2018 OSAKA / TOKYOOPTPiX SpriteStudioと他社ツール比較(真)資料2 - 株式会社ウェブテクノロジ - GTMF 2018 OSAKA / TOKYO
OPTPiX SpriteStudioと他社ツール比較(真)資料2 - 株式会社ウェブテクノロジ - GTMF 2018 OSAKA / TOKYO
 
ゲームエンジンの知能化の設計-ゲームエンジンにおける人工知能の導入-
ゲームエンジンの知能化の設計-ゲームエンジンにおける人工知能の導入-ゲームエンジンの知能化の設計-ゲームエンジンにおける人工知能の導入-
ゲームエンジンの知能化の設計-ゲームエンジンにおける人工知能の導入-
 
Go mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろうGo mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろう
 
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
 
Visual Studio App Centerで始めるCI/CD(iOS)
Visual Studio App Centerで始めるCI/CD(iOS)Visual Studio App Centerで始めるCI/CD(iOS)
Visual Studio App Centerで始めるCI/CD(iOS)
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
 
Beatroboでのハードウェアプロトタイピング
BeatroboでのハードウェアプロトタイピングBeatroboでのハードウェアプロトタイピング
Beatroboでのハードウェアプロトタイピング
 
UnityによるAR/VR/MR 開発体験講座
UnityによるAR/VR/MR 開発体験講座UnityによるAR/VR/MR 開発体験講座
UnityによるAR/VR/MR 開発体験講座
 
AI搭載の新しいBingとEdge
AI搭載の新しいBingとEdgeAI搭載の新しいBingとEdge
AI搭載の新しいBingとEdge
 
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
 

Mehr von Takao Sumitomo

Mehr von Takao Sumitomo (20)

僕は上スワイプでBottomSheetを出したかっただけなんだ
僕は上スワイプでBottomSheetを出したかっただけなんだ僕は上スワイプでBottomSheetを出したかっただけなんだ
僕は上スワイプでBottomSheetを出したかっただけなんだ
 
CIのビルドを通知する仕組みをAndroidとFirestoreで作った話
CIのビルドを通知する仕組みをAndroidとFirestoreで作った話CIのビルドを通知する仕組みをAndroidとFirestoreで作った話
CIのビルドを通知する仕組みをAndroidとFirestoreで作った話
 
Camera API 1と2が混在するプロダクトの開発で 泣いたこととそのワークアラウンド
Camera API 1と2が混在するプロダクトの開発で 泣いたこととそのワークアラウンドCamera API 1と2が混在するプロダクトの開発で 泣いたこととそのワークアラウンド
Camera API 1と2が混在するプロダクトの開発で 泣いたこととそのワークアラウンド
 
アプリを成長させるためのログ取りとログ解析に必要なこと
アプリを成長させるためのログ取りとログ解析に必要なことアプリを成長させるためのログ取りとログ解析に必要なこと
アプリを成長させるためのログ取りとログ解析に必要なこと
 
高速でトライ&エラーを するために気をつけてること
高速でトライ&エラーを するために気をつけてること高速でトライ&エラーを するために気をつけてること
高速でトライ&エラーを するために気をつけてること
 
Maker Faire Bay Areaに行きたかったのでGoogle I/Oに行ってきた
Maker Faire Bay Areaに行きたかったのでGoogle I/Oに行ってきたMaker Faire Bay Areaに行きたかったのでGoogle I/Oに行ってきた
Maker Faire Bay Areaに行きたかったのでGoogle I/Oに行ってきた
 
Viewを動的に変化させるアプローチ
Viewを動的に変化させるアプローチViewを動的に変化させるアプローチ
Viewを動的に変化させるアプローチ
 
プロダクトを育てるのにGoogleのサービスが助けてくれること
プロダクトを育てるのにGoogleのサービスが助けてくれることプロダクトを育てるのにGoogleのサービスが助けてくれること
プロダクトを育てるのにGoogleのサービスが助けてくれること
 
AdapterToolboxでRecyclerViewを楽にする
AdapterToolboxでRecyclerViewを楽にするAdapterToolboxでRecyclerViewを楽にする
AdapterToolboxでRecyclerViewを楽にする
 
エンジニアがプロダクト育成を始めるまでにやったこと
エンジニアがプロダクト育成を始めるまでにやったことエンジニアがプロダクト育成を始めるまでにやったこと
エンジニアがプロダクト育成を始めるまでにやったこと
 
Uml速習会
Uml速習会Uml速習会
Uml速習会
 
勉強会資料 データ構造とアルゴリズム
勉強会資料 データ構造とアルゴリズム勉強会資料 データ構造とアルゴリズム
勉強会資料 データ構造とアルゴリズム
 
勉強会資料 Uml概要
勉強会資料 Uml概要勉強会資料 Uml概要
勉強会資料 Uml概要
 
Firefox OSの何が嬉しいか
Firefox OSの何が嬉しいかFirefox OSの何が嬉しいか
Firefox OSの何が嬉しいか
 
HTML5でFirefox OSアプリを作ろう
HTML5でFirefox OSアプリを作ろうHTML5でFirefox OSアプリを作ろう
HTML5でFirefox OSアプリを作ろう
 
フォクすけロボ開発進捗報告
フォクすけロボ開発進捗報告フォクすけロボ開発進捗報告
フォクすけロボ開発進捗報告
 
今更ながらCSS3を試してみた
今更ながらCSS3を試してみた今更ながらCSS3を試してみた
今更ながらCSS3を試してみた
 
Crystalskullを改造してみる
Crystalskullを改造してみるCrystalskullを改造してみる
Crystalskullを改造してみる
 
もしソフトウェアディベロッパーが3Dプリンターで『フォクすけ』を作ったら
もしソフトウェアディベロッパーが3Dプリンターで『フォクすけ』を作ったらもしソフトウェアディベロッパーが3Dプリンターで『フォクすけ』を作ったら
もしソフトウェアディベロッパーが3Dプリンターで『フォクすけ』を作ったら
 
アンドロイダー的にHTML5でどこまでできそうか
アンドロイダー的にHTML5でどこまでできそうかアンドロイダー的にHTML5でどこまでできそうか
アンドロイダー的にHTML5でどこまでできそうか
 

Kürzlich hochgeladen

Kürzlich hochgeladen (7)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

sharedUserIdを使った俺得開発ツールの作り方