アプリ開発時に使える通信機能まとめ
アプリに通信機能を実装する
アプリは通信機能を実装する事でよりいろいろな事ができるようになります。サーバから画像や動画をダウンロードして表示するとか、データベースにデータを保存したり呼び出したりするとか、WEBサイトを表示したりすることもできます。
アプリで実現できる幅が広がる通信機能ですが、どのように実装し、どんなところに気をつければいいのでしょうか。今回は通信機能のリファレンスをまとめてみました。

HTTP通信の実装リファレンス
通信機能を実装する場合、どのようにするのでしょうか。最初は汎用性が高くてよく使われるWEBの通信、HTTP通信を見てみましょう。
AndroidアプリでHTTP通信をする場合、DefaultHttpClientクラスを使うのが一般的でしたが、Android次期バージョンのSDKよりサポートが無くなることから、今後はHttpURLConnectionを使うのが無難だと言えそうです。
iOSアプリでHTTP通信をする場合はと言うと、NSURLConnectionを使うのが一般的です。NSURLRequestを生成し、NSURLConnectionの生成の際に、先に生成したNSURLRequestを渡すと通信が開始し、NSURLConnectionにレスポンスコードが格納されます。NSURLConnectionを生成する段階で通信が開始される事に注意が必要です。
これでHTTP通信の実装をすることができるのですが、通信はアプリや端末、サーバーやネットワークなど様々な要因で例外が発生する場合があります。アプリ側でもその例外に備える事やなぜそのようになったのかログを残す事が大切です。
iOSアプリでログを残すにはNSLog関数を使用します。また、Androidアプリでログを残すのにはLogクラスを使用します。
Androidアプリでは例外が出た場合にアプリが異常停止しないよう、通信機能を使い際にはtry-catch文を使う事も重要です。例外が出た際のログ出力はcatchの中にコードを入れておく事で実行されます。
もう一つ、通信機能を実装する際の注意点があります。それは、通信機能はメインとは別のスレッドで走らせるべきであるという事です。なぜかというと、通信が始まるとそのスレッドは通信の結果が出るまで停止します。
ユーザーからすれば止まってしまうのでバグが発生したのかと思われてしまうかも知れません。通信中という文章だけで無く、アイコンやバーを動かしたりする事でちゃんと動いている事をアピールする事も大切です。
その他の通信機能の実装
他にもアプリに実装できる通信機能はいくつかありますのでご紹介します。
メール送信をするSMTP通信をする場合、AndroidアプリではJava mailライブラリを用います。サーバ設定のプロパティをSessionクラス生成時に引数として入れます。メッセージはMimeMessageクラスにSessionと送り先、タイトルと本文などを入れて送信します。
Javaの純正のライブラリを使うと通信や設定が細かくて面倒くさかったりします。そのような場合、オープンソースのライブラリを活用する事でより簡単に作る事ができ、かつ品質も良くなります。その上、無料で使用できるので、使わない手は無いですね。
AndroidでFTP通信を行う場合、Javaライブラリで作るとなると、Socketクラスで接続から通信まで1から10まで打ち込まなければならず面倒です。先に説明したとおり、オープンソースのライブラリを使うべきですね。種類が豊富なのですが、今回はAsyncTaskの場合を例に出してみます。
AsyncTaskはFTPだけでなく、SMTPを始めとした15種の通信にも対応しているので便利ですね。AsyncTaskでは、FTPClientクラスを使って接続ならconnectメソッド、送信ならstoreFileメソッドと1つのクラスでほとんどのFTP作業が行えます。シンプルでとても便利ですね。
通信機能は複雑なので難しいですが、アプリの幅は広がりますので挑戦する価値はあります。ぜひ試してみてください。
なお、アピアリーズのSDKをご利用いただければ、これらのような面倒な通信制御はほとんど考慮すること無く、サーバ(BaaS)にデータを保存したり、DBを検索したりといったことが可能です。ぜひ、お試し下さい。
外部リンク
Appiaries Android SDK 2.0 開発者ガイド http://docs.appiaries.com/?p=14060
Appiaries iOS SDK 2.0 開発者ガイド http://docs.appiaries.com/?p=14414
アプリを宣伝する方法にはどんなものがあるの?
アプリを宣伝してみよう
せっかく面白いアプリを作っても、知ってもらわないと使ってもらえません。知ってもらうためにはやはり宣伝することが一番です。今回はいろいろなアプリの宣伝方法をご紹介します。
あなたは面白そうなアプリを探そうと思ったとき、App StoreやPlay Store以外だとどこを探すでしょうか? おそらくアプリレビューサイトだと思います。それらのサイトに掲載してもらったら多くの人の目に入りそうですね。
アプリレビューサイトで特に有名なのはApp bankですね。App bankのサイトの一番下を見ると、こっそりとレビュー依頼というリンクがあります。そこで自分のアプリの良さをアピールして合格すれば掲載してもらえます。
知らない人もいるかも知れないので改めて言いますが、App bankはiOSアプリの紹介サイトです。iPhoneアプリの紹介サイトは他にもApplivやmeetiなどがあります。
Androidアプリのレビューサイトにはoctobaやアンドロイダーなどがあります。他にも探したらたくさんあります。基本的に無料でレビューしてくれるのでどんどん申請しましょう。

人とのつながりで広めよう
アプリを作ったら友達に試してみてもらってください。友達が気に入ってくれれば他の人にも紹介してもらえそうです。また、顔が広い人にお願いすれば一気に口コミが広がるかも知れません。地道に見えますが、近い人ほど応援してくれます。
また、現代はSNSという便利なツールがあります。FacebookやTwitterに投稿して、友達に拡散してもらえば、一気にたくさんの人の目に入る事になります。
いいねやリツイートというワンクリックだけで押した人の友達にも通知が行くとなれば簡単に拡散できます。いいねと押したくなるような記事内容にできれば爆発的に広がりそうです。
広告を打って一気に広めよう
アプリの宣伝はできれば無料でやりたいですが、一気に広めようと思ったらやはり広告を打つのが一番早いです。ではどのように広告を打てばいいのでしょうか。
今ではアドネットワークという便利な広告配信ネットワークができています。それ以前は一つ一つのWEBサイトに広告をお願いしないといけなかったのですが、アドネットワークに依頼する事でそのネットワークに参加しているWEBサイトなどに一斉に広告を載せる事ができます。
それだけで無く、それぞれバラバラにやりとりしたり条件の交渉をしたりと把握自体が面倒になるような事も一括して交渉や広告料支払いなどもできるため、とてもシンプルな広告の管理ができます。
また、プレスリリースというものもあります。プレスリリースはニュースサイトや報道機関に向けて配信してほしい情報を流す事です。ニュースサイトなどはこのプレスリリースからも記事の材料を探します。
このプレスリリースに載せるのにもお金がかかるのですが、面白いネタだとメディアに拾ってもらえればニュースや記事になるので、拡散力も強そうです。
せっかく面白いものを作っても埋もれてしまっては作った甲斐がありません。自信作のアプリができたら、宣伝も頑張ってみてはいかがでしょうか。
外部リンク
- アプリレビューサイト
- アドネットワーク
- プレスリリース
アプリユーザーに有益な情報を提供したい!
クラウドサービスを積極利用する
Androidには様々な通信機能が使われていますが、ユーザーに開発側からのお知らせを通知する機能を「プッシュ通知機能」といいます。

この機能はユーザーが許可した場合にのみ利用可能で、デベロッパーは遠隔から特定のユーザー、例えば会員登録をした顧客にキャンペーンなどの特定情報を配信できるしくみです。
代表的なのがGoogle Cloud Messaging(略してGCM)で、アンドロイド端末にメッセージをプッシュ配信するクラウドサービス。プッシュ機能を実現するとなると、クライアントだけではなく、サーバーサイド機能も必要です。全て自分で構築するとなると非常に大変な開発が必要ですが、(手前味噌にはなりますが)アピアリーズのBaaSを利用すれば、ものの数時間でプッシュ通知の実装することが可能です。
これらのサービスに使われているのが、HTTP通信技術です。以下にAndroidの通信技術を纏めてみました。
押さえておきたい、Androidアプリ開発の基本通信機能4つ!
Androidアプリ開発の基本通信機能を4つ、HTTP通信、メール、GPS、Bluetoothについてまとめます。
HTTP通信
基本的なHTTP通信を行うには、DefaultHttpClientクラスとHttpGetクラスを使います。
(1)Activityにインスタンス作成を記述する。
(2)レスポンス(結果)を取得するXMLを作成する。
(3)インターネットに接続するためのパーミッションの記述をマニフェストファイルに記述する。
これで、基本的なHTTP通信は可能です。
メール
基本的なメール送信を行うには、Intentを発行して、標準のメールアプリを起動する方法です。呼び出すメールアプリは、動作しないアプリもあるので検証が必要ですが、基本的な手順は下記の順に記述していけばメール送信は可能です。
(1) インテントのインスタンス生成
(2) 宛先を記述
(3) メールの件名を記述
(4)本文を記述
(5)メール起動
これで、基本的なメール送信は可能です。
GPS
基本的なGPS機能は、GPSを利用して端末の位置情報を取得することですが、手順は下記の順番で記述していけば位置情報は取得できます。
(1) パーミッションをマニフェストファイルに記述する。
(2) LocationManagerを取得する
(3) ロケーションプロバイダの条件を指定する
(4) 位置情報リスナーの実装をする
(5) 位置情報リスナーの登録と更新間隔を設定する
これで、GPS機能による基本的な位置情報は取得可能です。
GPS
基本的なbluetooth機能は、Bluetooth デバイスと無線で通信して、データ交換などが行えます。例えば、友人のスマホのBluetooth機能をONにして、それをデバイスとしして認識させて対戦ゲームをするというようなことです。bluetoothAPIは、全てパーケージで用意されていてます。
Androidの様々な通信機能を使い、エンドユーザーに喜ばれるアプリを開発していくのには、クラウド系のサービスを利用して開発工数を減らす工夫も必要ですね。
外部リンク
- アピアリーズ機能概要 > プッシュ通知
よいアプリにはよい宣伝を!
よいアプリを開発したらにはよい宣伝を!
個人開発のアプリは、とりあえず自分に便利で楽しいアプリをつくろうというノリで始める方も多くいらっしゃるかと思います。一方でターゲットユーザーは30代の子育て中のママ、などというように戦略的にアプリを開発しても、そのよさを知ってもらう方法がないとアプリが世に広まるチャンスを失うことになります。
開発したアプリを宣伝する方法5つ!
(1)GooglePlayでの検索を最大限に意識しよう!
やはり、なんといっても検索でユーザーの目に触れないとダウンロードしてもらえないですよね。それにはSEOを意識してやるべきことはたくさんあります。
例えば、自分のブログからアプリページにリンクをはる場合に、検索エンジンはそのアンカーテキストの内容によってリンク先の評価をしています。つまり、HTMLでいえば、Aタグで囲んだ内容をアプリ名にすることによりアプリの検索順位が変わることになります。
また、説明文をたくさん入れるのではなく、最初の5~6行でアプリの内容が伝わるようにします。わかりやすく簡潔に伝えることが重要です。

(2)目にとまるおしゃれなアイコンとネーミングにしよう!
GooglePlayで検索されたとしても、ユーザーの目に留まらなければダウンロードしてもらえませんよね。シンプルでわかりやすいネーミングやアイコンはとても魅力的なアプリに見えて、ダウンロードしてみようかという気持ちにユーザーをさせるのが大切ですよ。
(3)プレスリリースを積極的に!
ニュースサイト、情報サイトへの掲載は相当数のユーザーを集めることが可能。個人作成でも掲載してもらえるサイトもあります。
(4)ソーシャルメディアを活用しよう!
TwitterやFacebook、Lineを使って、アプリを紹介するボタンなどをアプリ内に配置しておくと友人にアプリの存在を知らせることができます。
(5)Googleplayにyoutubeの動画を掲載しよう!
アプリの内容がひとめでわかる簡単な動画が効果があるといわれています。
こんなPR対策も、肝心のアプリがよくなくては何の役にもたちません。個人開発の場合は、極力ひとりよがりにならないように注意したいものです。
(画像はイメージです)
アプリ開発のためにはどんなチームを作れば良いの?
チームでアプリ開発をするメリット
アプリ開発は一人でする事もできますが、チームでアプリ開発をするといろいろなメリットがあります。
誰でも得意な作業があると同時にそんなに得意ではない、またはほとんどできない作業があるのではないでしょうか。そんな状態ではアプリ開発も苦手なところで躓いてしまいます。
そこで、自分のできないところをやってくれる仲間がいたらアプリ開発もはかどりそうですよね。このように、チームを組めばお互いの苦手な部分を補ったり、それぞれ得意なところに集中したりできるんです。
また、チームの人数が多い分アイディアや考え方も多くなり、クオリティが高くなったり問題発生時に早く解決へ向かいやすくなったりします。
だからといって、人数が多ければ多いほどいいというわけでは無く、多すぎると把握が大変になったり、意思疎通が行き渡らなくて統率が取れなくなったりすることも考えられます。何事もちょうどいい事に超した事はありませんね。

役割を考えたチーム作り
アプリ開発のためのチームを組む際に、どういう基準でメンバーを集めたらいいのでしょうか。得意な作業に集中できれば効率が上がると考えると、役割ごとに得意なメンバーを配置したら良いチームが作れそうです。
まず、アプリ開発を始めるにはどんなアプリを作るか企画から始まります。この役割は一般的にディレクター(またはプロデューサー)と言われますね。
ディレクターはアプリがどのような人たちに使ってもらえるアプリなのか、そのようなターゲットが使いたくなる、楽しめるアプリとはどういうものなのかなど、アプリの内容を企画する役割で、アプリが人気になるかどうかの特に大切な部分を担当します。
次に開発に入って行くと、アプリ開発はレイアウトとコーディングがあります。レイアウトを担当するのはデザイナーと一般的に言われます。
デザイナーはボタンやアイコンなどをきれいに作ったり配置したりするだけで無く、どのように配置したら使いやすいか、快適に使えるかということまで考えてレイアウトを作っていきます。デザイナーの作成したレイアウトによって、アプリの使いやすさや体験が左右されるため、とても重要な役割です。
そして、コーディングですが、この役割は一般的にエンジニアとかプログラマとか言われます。プログラムを組んでいく事が主な仕事であり、アプリができあがった後にバグを除いていくデバッグ作業もエンジニアの仕事です。
アプリの内容やデザインがいくら良くても、動きが重かったり、バグが多かったりすると使う気持ちが萎えますよね。エンジニアは地味な役割に見えますが、とても重要な役割です。
開発チームのマネジメント
アプリ開発が趣味や遊びであればそんなに必要ないかも知れないですが、コンテストに出場するとか、利益を出そうとか、そもそも会社や組織のプロジェクトだとか言うときには、アプリ開発チームのマネジメントは非常に重要なものになります。
このマネジメントを行う役割は一般的にマネージャーとかプロデューサーとか言われます。
マネージャーは開発が期日までに終わるように各メンバーの作業進捗状況の把握することや、予算や経費の管理、さらに、会社や組織の場合には人員の選定なども行います。つまりは一般的にチームの一番の上司にあたります。
人数が多いときなどには特にマネージャーが置かれます。人数が多いという事はそれぞれのメンバーの把握が大変だからです。
しかし、マネージャーが置かれたとしても、人数が多すぎればまとめきれません。会議をしたとしても、お互いの進捗報告だけで終わってしまいそうです。マネージャーはチームの人数などにも目を配る必要がありそうです。
それぞれの役割をしっかりこなしてチームで協力し合えれば、お互いに相乗効果がかかってよりクオリティの高いアプリを短期間で開発する事ができそうです。
コミュニケーションを円滑に取る必要も出ますが、それ以上のメリット得られることは間違いありません。チームでのアプリ開発で、もっとステキなアプリ開発を進めてみてはいかがでしょうか。
組織でアプリ開発をする際に必要なツールは?
組織での開発はコミュニケーションが大切
組織でアプリ開発を行う場合、それぞれで役割を分けて作業をするため、作業の進捗状況だけで無く、それぞれの役割で作っているものの繋げ方などアプリの制作に深く関わる打ち合わせもする必要があります。
それぞれの制作物をうまくつなげないと、例えばボタンとプログラムの連携が入れ替わってしまって、戻るボタンを押したのに進んでしまうとか、プログラムとサーバとのデータ連携が上手くいかない場合はデータが壊れてしまったり、アプリが停止してしまったりしてしまいます。
このように、製作の工程で密にコミュニケーションを取っていかないと問題が発生してしまいます。

組織で開発する際に便利なツール
組織で開発をする際にアプリの内容など細かなコミュニケーションを取るのは非常に面倒です。そこで、アプリ開発においてコミュニケーションを取るのにとても役立つツールをご紹介します。
メッセージを送り合えるエンタープライズソーシャルで人気なのが、MicrosoftのYammerです。エンタープライズソーシャルとは組織内のみでやりとりをするSNSで、もちろん組織内のメンバーのみ閲覧が可能です。
メッセージの投稿や返信、画像やファイルの送信、グループの作成、それ以外にも様々な機能がついています。これを使えば気軽にやりとりや共有ができそうですね。
もう一つ、今人気を集めているのがSlackです。機能としてはとてもシンプルで、メッセージのやりとりであればこれで十分そうですね。Slackの良いところは、シンプルだからこそ直感的に分かりやすいレイアウトだという事です。
会話をしたいCHANNELというグループや1対1が良ければアカウントを選んでメッセージを送るだけです。また、CHANNELには自分から進んで入る事ができます。
良くあるSNSとかだと、招待があって入る事ができますが、Slackでは自分から進んで加入する方式をとっています。自分の興味のあるCHANNELに積極的に参加すればどんどんスキルを身に付けていく事ができそうですね。
進捗やデータを共有しやすくする便利なツール
言葉でのやりとりも非常に大事ですが、現在の仕事の状況をお互いに共有する事も非常に重要です。そんなときに便利なツールを紹介します。
バージョン管理ツールのGitHubを紹介します。GitHubの主な機能は、ファイルやフォルダの変更を保存しておき、過去に保存した内容や差分を簡単に調べたり、誰がいつ変更を保存したかなどバージョンを管理したりする事ができます。
差分を確認する際も色分けされたりして見やすいように作られています。これなら、どこを変更したのかとか、それぞれの作業の進み具合とかが簡単に確認できて便利ですね。
また、チームで作業する場合、バックログ問題に注意する必要があります。バックログとは未処理のままになっている作業の事で、それが未着手のままで放置されてしまうと問題となります。
バックログ問題を解決するのにお勧めな便利ツールにPivotal Trackerがあります。このツールは作業毎の進捗状況をシンプルに管理できます。
どのように管理するかというと、ICEBOXという要件や課題を溜めておくエリアに作業などの案件を追加していきます。そして、実行に移すと決まった案件を着手順にBACKLOGというエリアに移動します。そして、着手したものはCURRENT、完了した案件はDONEというエリアに移動します。
こうすることで、現在、どこまで作業が進んでいるか、どの案件が今動いているのか、どのくらいやる事が溜まっているかなどが一目で分かります。これなら、うっかり作業をし忘れてしまったということも無くなりそうです。
チームでの開発は連携がうまくいけば作業効率も一気に伸びます。便利なツールはここで紹介したもの以外にもたくさんありますので、いろいろ試してみてはいかがでしょうか。
外部リンク
- Microsoft Yammer
https://www.microsoft.com/ja-jp/yammer
- Slack
- GitHub
- Pivotal Tracker
スマートフォン向けゲリラ豪雨検知アプリ「3D雨雲ウォッチ~フェーズドアレイレーダ~」の実証実験が開始
大阪府、兵庫県、京都府、奈良県の一部で利用可能
株式会社エムティーアイが運営する天気総合情報サイト「ライフレンジャー天気」は、国立研究開発法人情報通信研究機構(以下、NICT)と共同開発したスマートフォン向けゲリラ豪雨検知アプリ「3D雨雲ウォッチ~フェーズドアレイレーダ~」の実証実験を7月21日(火)より開始しました。

このアプリは、刻一刻と変化するゲリラ豪雨の発生状況を3次元レーダマップで確認することができ、今まで察知が難しかったゲリラ豪雨の可能性を瞬時にスマートフォンのプッシュ通知で受け取ることができるというものです。
実証期間は2015年7月21日(火)~2015年10月30日(金)、実験対象地域は大阪府、兵庫県、京都府、奈良県の一部となっています。Google Play、App Storeで「3D雨雲ウォッチ」で検索するなどして、無料でインストールすることができます。
東芝、大阪大学、NICTが共同開発した世界最先端気象レーダの3次元観測データを活用
「3D雨雲ウォッチ~フェーズドアレイレーダ~」には株式会社東芝、大阪大学、NICTが2012年に共同開発した「フェーズドアレイ気象レーダ」の3次元観測データが用いられています。
これまで日本に配備されていた大型気象レーダは、主に台風や梅雨前線などの降雨を観測するためのもので、地上付近の降雨分布観測に1~5分、降水の3次元観測に5分以上の時間を要していました。
新開発された「フェーズドアレイ気象レーダ」は30秒毎という今までにない高頻度で雨雲の中を3次元観測し、ゲリラ豪雨を高精度でキャッチできる日本初の気象レーダです。
この「フェーズドアレイ気象レーダ」を用いることで、局地的大雨や集中豪雨をもたらす発達の早い積乱雲の前兆現象をリアルタイムに観測することや、今まで察知できなかった竜巻などの気象状況も迅速に検知することが可能です。
外部リンク
- 3D雨雲ウォッチ~フェーズドアレイレーダ~