Category Archives: 谷口

Androidエンジニアの皆さん、TestflightのAndroid版が終了して悲しいですね。゚(゚´Д`゚)゜。

それぞれ別サービスへの移行は順調でしょうか?

今回は、DeployGateへの移行方法を書いていきたいと思います。

 

①DeployGateに登録する

https://deploygate.com/

ここにアクセスして登録しましょう!

00 02

 

②サンプルアプリをアップロードする

DeployGateはアプリをテストするためのサービスです。自分で開発したAPKをアップして、テスターさん配布するために使用する開発者さんがほとんどでしょうが、ここではサンプルアプリというものが用意されているので、それを試しにアップしてみましょう。

03 05

DeployGateでは、APKをアップするだけで管理画面にアプリが追加されていきます。

このあたりの仕組みはTestflightと同じですね。

 

③共有用のリンクを作成する

アップロードが無事完了し、アプリが追加されました!

次は、アプリを配布するための配布ページを作成しましょう。この配布ページのURLをテスターさんたちに渡して、アプリをテストしてもらいます。

06

この配布ページの作成は、あとからでも可能です。(ただし、配布ページの数は上限があります)

07

配布ページの作成が完了しました。

ここで、ディスプレイ左上に何かボーナス表示出てきたと思います。「DeployGate Bootcamp」とあります。

これは、DeployGateを利用する上でのチュートリアルで、それぞれのチュートリアルを達成するごとに、機能の制限が解除されていくというものです。

このチュートリアルを全てクリアすると、フリープラン試用でも、そこそこ充実した機能を利用することができるようになります。

 

④新規アプリを追加する

さて、サンプルアプリを追加すると、ダッシュボード画面に移ります。これが基本となる管理画面です。

ここから開発中の新規アプリを追加していくことになります。開発中のアプリを新規に追加するには左下のボタンを押してください。

08 09

「このバージョンの説明」という欄は任意です。空欄のままでもアップできます。

10

アップが完了しました。ボーナスGET!

 

⑤個別アプリごとのメンバーを追加する

個別アプリの管理ページはこのようになっています。

11

ここでアプリの状況を一覧することができます。

ではまず、アプリの開発者やテスターをメンバーとして追加しましょう。

13

右の欄から、すでにDeployGateに登録している人をメンバーとして追加することができます。

14

ボーナスGET! メンバーの追加ができました。

次に、アプリの更新を行います。中段のボタンを押して、新規アプリの追加と同じ要領でアップデートします。

15

ボーナスGET!

これを繰り返して5回ほどアップデートすると、またボーナスをGETできます。

20

 

⑥アップデートの配布

アプリをアップデートしたら、それを配布しましょう。アップデートしただけでは、テスターの皆さんが動かしているアプリを更新することができません。右上のメニューから配布します。

18 19

これで、すでにアプリをインストールしているテスターさんの端末にプッシュ通知が飛び、アプリのアップデートを知らせることができます。

 

以上です。

いま使っている印象として、開発者やテスターさんが使いやすいよう、かなりカスタマイズされていると感じました。

これからもより良いサービスになるように、大いに期待しているサービスです。

DeployGateを使ってのアプリのテスト方法を書いていきます。

今回はテスターさんたちが導入する方法です。

DeployGateは導入が非常に簡単なので、いくつかの注意事項に気を付けていればすぐに使いこなせるようになります。

あ、Androidアプリに関する記事なのでiOSの方は別の記事をご参照ください。

①開発者さんはアプリの配布ページを作成しましょう

APKをアップロードすると、DeployGateの管理画面に新規アプリが追加されます。

その際にこんな画面が出るので、「共有用のリンクを作成する」のタブをクリックします。

1

リンクの作成は画面を閉じてしまった後でも可能です。管理ページの右上に「共有用のリンクを追加」というボタンがあるので、それをクリックすれば作成されます。

2

配布ページはこんな感じです。

3

配布ページにアクセスしたら、URLをコピーしておきましょう。

②テスターさんたちは開発者さんから配布ページのURLを受け取って、DeployGateをインストールしましょう

テスターさんは開発者さんにURLを聞いて、上述の①で作成した配布ページにPCでアクセスします。

左下にあるQRコードをテストする端末で読み取って、指定のURLにスマートフォンからアクセスします。

Screenshot_2014-03-24-10-48-28 Screenshot_2014-03-24-10-48-42

自動でDeployGateのGooglePlayページにアクセスするので、インストールしましょう。

③あとは画面の指示に沿っていけば完了!

Screenshot_2014-03-24-10-49-14 Screenshot_2014-03-24-10-49-19 Screenshot_2014-03-24-10-50-06

ね、簡単でしょう?

④スマートフォンにインストールしたDeployGateを起動してみましょう

DeployGateを通してインストールしたアプリは、DeployGateアプリ内で更新や再インストールができます。

テストするアプリがアップデートしたりすると、プッシュ通知が飛んで来たりして高機能!

Screenshot_2014-03-24-10-55-19

いやー便利ですねー。

※注意

ご覧の通り、簡単に使える反面、配布ページのURLが解ればテストアプリを誰でもインストールできるという危険性があります。

配布ページのURLが外部に漏れたりすると、意図しないユーザーにアプリがインストールされてしまう事態を招きかねないので、取扱いには十分注意しましょう。

 

***追記***

DeployGate公式様からコメントをいただきました。

>ご紹介ありがとうございます!配布ページにはパスワード設定を行うことも可能ですので是非ご活用ください!

とのことです。

パスワードの設定は、ダッシュボードの配布ページの設定画面に飛んで

1

公開範囲の欄から設定できます。

2

弊社ではインターンを絶賛大募集しています!

 
154529369581
実践力が身に付く、超実践型インターン!! 
健康管理サービス『カラダノート』運営企業! 
★企画営業、★エンジニア、★デザイナー、★サービス運営担当 
株式会社プラスアール|短期バイト求人なら大学生アルバイト.com

 
Android担当エンジニアのインターンとして採用されれば、筆者である私とペアを組んで仕事することになります。 
その際には、就職活動のときや入社してからも即戦力として役立つ超実用的な9つのスキルを教えることを約束します! 
 
 

・JAVAを教えます

Android端末のアプリは、JAVAというプログラム言語で動作しています。 
JAVAはスマートフォンアプリ以外でも広く使われている言語で、アプリ開発を通じてJAVAを使いこなせるようになれば、幅広い業務に対応できます。 
関連記事) 
Activityにまたがってグローバルに変数などのオブジェクトを共有するには 
AndroidでWebViewアプリを作る[初心者向け] 
 
 

・PHPを教えます

・HTMLを教えます

・MYSQLを教えます

・Linuxを教えます

弊社はソーシャルアプリを多数リリース用しており、1つのサービスで1日の最大利用者数が5万に達したこともあります。 
PHP、HTML、MYSQLなどをマスターすれば、WEBサイトが開発できるようになり、アプリ開発だけでなく、WEBエンジニアとしての道も開けてきます。 
関連記事) 
Amimoto AMI 網元『から』別のサーバーにwordpressを移転するとき1 
AndroidアプリでUNIX timeを取得 
 
 

・FLASHを教えます

FLASHはWEBサイトやフィーチャーフォン(ガラケー)のサイトでよく利用されている技術です。 
ターゲットとする分野によっては今でも重要視され、簡単な動画編集などもできる専門性の高い技術です。 
関連記事) 
FlashLite1.1でアドベンチャーゲームをつくる 第1回 『タイプライター風に1文字ずつ文字を表示しよう シーン構成編』 
 
 

・PowerPointを教えます

企画や営業の際に必須になるのがPowerPointです。大学のレポート作りにも即役立つ、便利なツールです。 
PowerPointの使い方やちょっとしたコツを、実際に使われているドキュメントを通して教えます。 
 
 

・Excelを教えます

「正直言うとエクセルの使い方がよく解らない……」という人も多いと思います。 
実務では非常によく使われていますが、基本的な部分から教えていくので安心してください。 
また、関数やマクロといった、一歩進んだ使い方まで指導します。 
関連記事) 
Excelで書かれた「ふりがな付き文字列」をHTMLのタグに対応した文字列に自動で変換する 
 
 

・ギターを教えます!

実務とは全く関係ありませんが、ご希望とあらばギターを教えます! 
……あ、いらない? 
関連記事) 
『Golden Age vol.1』 開催決定!! 
 
 
 
自分の現状のスキルに全く自信がない、という方でも、まずはお気軽にオフィスに遊びに来てください! 温かくお迎えします! 
お待ちしていますm(_ _)m 

Excelには便利な機能があって、漢字にフリガナを振ってくれる機能があります。

1

エクセル画面で右クリックをして……

2

「ふりがなの表示」を押すと……

3

こんな感じで自動で振ってくれます。

ところで、HTMLのタグで、<ruby>タグというものを知っていますか?

ルビ(ふりがな)を付ける

HTMLページで、対応しているブラウザではルビを表示してくれるタグです。

例えば「今日」という単語をルビ付きで表示したいときは、

<ruby>今日<rp>(</rp><rt>きょう</rt><rp>)</rp></ruby>

みたいに長ったらしく記述しなければなりません。

今回は、このExcelのルビをHTMLタグの記述に変換しようという試みです。

ぶっちゃけ大変でした。

最初は関数だけでなんとかなると思ってたんですが、結局ムリで、VBAでマクロ組むしかなかったです。

それでは、マクロのコードがこんな感じです。

Sub OutputScripts()

    '出力準備
    Dim pass As String
    pass = Left(ActiveWorkbook.FullName, Len(ActiveWorkbook.FullName) - Len(ActiveWorkbook.Name))
    pass = pass + "\output.txt"
    Open pass For Output As #1

    'セルを1文字ずつ検証
    Dim x As Integer
    Dim y As Integer
    For y = 2 To 3

        '出力用
        Dim output_text As String
        output_text = ""

        For x = 2 To 4
            'セルのテキスト
            Dim cel_text As String
            cel_text = Cells(y, x)

            'ふりがなの数
            Dim furigana_count As Integer
            furigana_count = Cells(y, x).Phonetics.Count

            'もし0個なら
            If furigana_count = 0 Then
                'そのまま格納
                output_text = output_text & """" & cel_text & ""","
            Else
                '検証文字の位置
                Dim pos As Integer
                pos = 1

                '変換後の文字列
                Dim update_text As String
                update_text = ""

                'for文をまわす
                For daf = 1 To furigana_count
                    'ふりがなと位置と文字数取得
                    Dim start_num As Integer
                    Dim end_num As Integer
                    start_num = Cells(y, x).Phonetics(daf).start
                    end_num = Cells(y, x).Phonetics(daf).Length

                    '漢字以外の文字をきりとる
                    Dim other As Integer
                    other = start_num - pos
                    update_text = update_text & Mid(cel_text, pos, other)

                    'もとの漢字
                    Dim kanzi As String
                    kanzi = Mid(cel_text, start_num, end_num)
                    'ふりがな
                    Dim furigana As String
                    furigana = Cells(y, x).Phonetics(daf).Text

                    update_text = update_text & "<ruby>" & kanzi & "<rp>(</rp><rt>" & furigana & "</rt><rp>)</rp></ruby>"

                    '位置記録
                    pos = start_num + end_num
                Next daf

                '残りの文字
                Dim nokori_num As Integer
                nokori_num = Len(cel_text) - pos + 1
                update_text = update_text & Mid(cel_text, pos, nokori_num)

                '変換して格納
                output_text = output_text & """" & update_text & ""","
            End If
        Next x

        '出力
        Print #1, output_text

    Next y

    'ファイルクローズ
    Close #1

End Sub

xとyという変数で2重のfor文を回すことで、セルを順番に検証しています。
Cells(y, x).Phonetics(daf).start という記述で、フリガナが振られた漢字の位置が特定でき、
Cells(y, x).Phonetics(daf).Length という記述で、フリガナが振られた漢字数が特定できます。

あとは、文字列の切り取りや連結を駆使して、最終的に変換したい形へ近づけていくだけです。

このマクロを再生すると、こういうテキストファイルが生成されます。

4

"こんにちは! <ruby>今日<rp>(</rp><rt>キョウ</rt><rp>)</rp></ruby>はいい<ruby>天気<rp>(</rp><rt>テンキ</rt><rp>)</rp></ruby>ですね!","<ruby>日差<rp>(</rp><rt>ヒザ</rt><rp>)</rp></ruby>しが<ruby>温<rp>(</rp><rt>アタタ</rt><rp>)</rp></ruby>かくて、とても<ruby>気持<rp>(</rp><rt>キモ</rt><rp>)</rp></ruby>ちいい!","こんな<ruby>日<rp>(</rp><rt>ヒ</rt><rp>)</rp></ruby>はお<ruby>散歩<rp>(</rp><rt>サンポ</rt><rp>)</rp></ruby>でもして、のんびり<ruby>過<rp>(</rp><rt>ス</rt><rp>)</rp></ruby>ごしたいですね。",
"うめぼしたべたい","うめぼしたべたい<ruby>僕<rp>(</rp><rt>ボク</rt><rp>)</rp></ruby>は","<ruby>今<rp>(</rp><rt>イマ</rt><rp>)</rp></ruby>すぐ<ruby>君<rp>(</rp><rt>キミ</rt><rp>)</rp></ruby>に<ruby>逢<rp>(</rp><rt>ア</rt><rp>)</rp></ruby>いたい",

これで、だいぶ互換性の高い文字列になるんじゃないでしょうか。

AndroidアプリでWebViewを使用しているときに、GooglePlayで配信しているアプリのダウンロードページへのリンクをクリックしても、GooglePlayアプリが起動しないことがあります。

 

(以下の画像は、弊社で配信している『カラダノートforAndroid』で動作させているものです。)

20131120_184633

アプリのダウンロードページへのリンクをクリックすると……

20131120_184750

普通のブラウザでアクセスしようとしてエラーになってしまう。

 

そういう場合は、WebViewをコードで制御して、アクセスするURLによってGooglePlayアプリを起動するなどの処理を実装しましょう。

WebView webView;
webView = (WebView) findViewById(R.id.○○○);

//各種設定
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.setVerticalScrollbarOverlay(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.setWebChromeClient(new WebChromeClient());
webView.getSettings().setJavaScriptEnabled(true);

//WebViewに独自のWebViewCliantをセット
webView.setWebViewClient(new MyWebViewClient(MainActivity.this));

このようにWebViewを宣言したのち、セットするWebViewCliantの方で、

public class MyWebViewClient extends WebViewClient {
	Activity mainActivity;

    public MyWebViewClient(Activity mainActivity) {
        super();
        this.mainActivity = mainActivity;
    }

    //ページの読み込み開始
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
    	mainActivity.setProgressBarIndeterminateVisibility(true);
    }

    //ページの読み込み完了
    @Override
    public void onPageFinished(WebView view, String url) {
    	mainActivity.setProgressBarIndeterminateVisibility(false);
    }

    //ページの読み込み失敗
    @Override
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        Toast.makeText(view.getContext(), "エラー", Toast.LENGTH_LONG).show();
    }

	// リンクをタップしたときに標準ブラウザを起動させない。
    @Override
    public boolean shouldOverrideUrlLoading(WebView webView, String url) {
    	// アンドロイドマーケットのときは例外
    	if(url.startsWith("http:") || url.startsWith("https:")) {
    		return false;
    	}
    	Uri uri = Uri.parse(url);
    	Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    	mainActivity.startActivity(intent);
    	return true;
    }
}

こう書くと、
20131120_184447
リンクをクリックすると……
20131120_184505

このようにGooglePlayが起動します!

 

やっぱりAndroidアプリでWebを見ている以上、GooglePlayへのリンクをクリックしたら自動でGooglePlayアプリが立ち上がるようにしたいですよね!