1. ホーム >
  2. ブログ ~人材育成最前線~ >
  3. 2015年5月記事一覧

2015年5月記事一覧

みなさん、こんにちは。私はスマートデバイス(スマートフォンやタブレット端末)で動くモバイルアプリケーション開発のAndroidアプリケーション開発の講師を担当しています。

さて、みなさんはモバイルアプリケーションというと、どのようなものを想像されるでしょうか?
メール、SNS等のコミュニケーションアプリ、ニュースや天気予報などの情報収集アプリを思い浮かべられる方も多いのではないでしょうか?

これらのアプリには、共通点があります。それはインターネット上のサーバと通信して情報を取得する機能を持っているということです。
そういえば、メールやSNS、ニュース、天気予報などはアプリだけでなくWebブラウザで見られるものもありますよね。

今回は、Androidアプリケーションの中でもよく使われる機能の一つである、通信機能のお話をしたいと思います。

イメージ図

<Javaの知識だけではAndroidアプリは作れない!?>

Androidアプリケーションを開発された方、または興味を持たれている方であれば、AndroidアプリはJava言語で記述する、ということもご存じだと思います。

Java言語は「もっともプログラマー人口が多い言語」と言われることもあるほど、大変普及している言語です。
そのため、Java言語でのプログラミングテクニック・ノウハウに関する情報はとてもたくさんあります。
本屋に行けば、選びきれない位たくさんのJava言語に関する本が売られていますし、ネットで検索すれば、Java言語によるソースコード例はたくさん見つかります。

Androidアプリの開発経験はないけれど、他のプラットフォームでアプリを作られた方であれば、すでに情報をお持ちであったり、今回お話しする通信機能を実際に作られた方もいらっしゃると思います。

では、その通信機能をAndroidでもそのまま動かすことができるでしょうか?

例えば、ユーザーインターフェースのような見た目に関する機能であれば、Android特有のプログラミングテクニックを知る必要があることはかんたんに想像できますが、サーバとの通信のような、見た目に影響しない機能については、そのまま動きそうな気もしませんか?

実は、このお話は半分だけあっています。AndroidもJavaの標準的なAPIを使って通信機能を実装することはできますが、そのほかに、必ず考慮しなければならない事があるのです。

<Androidアプリの考慮点の例~並列処理の仕組み~>

Androidはシングルスレッドモデルを採用しています。シングルスレッドモデルを簡単に説明すると、ある処理を行っている途中で別の処理を行うことができないしくみのことです。

イメージ図
サーバとの通信には、ある程度の時間がかかります。場合によってはサーバから応答が返ってくるまで数十秒から数分くらい待たされることがあります。この間、別の処理を行うことができないと、どのようなことが起こるでしょうか?

例えば、スマートフォンであれば電話機能があります。サーバとの通信中に別の処理を行うことが出来なければ、通信中に電話がかかってきても電話アプリを起動することができません。電話アプリが起動しなければ電話がかかってきたことすら気づくことができなくなります。これはとても困りますよね?

ところで、ここまで読まれた方で、少し疑問に思われた方もいらっしゃると思います。
Androidでふたつ以上の処理を同時に実行している、例えば音楽を流しながらWebブラウザでインターネットを検索するといったことができるのでは?という疑問を持たれた方もいらっしゃるのではないでしょうか?

実は、Androidはシングルスレッドモデルといっても、すべての処理が複数同時にできないわけではありません。画面の表示やタッチ、スワイプなどの操作といった、ユーザーインターフェースに関する処理だけが複数同時に実行できないのです。 ユーザーインターフェースに影響しない処理については、バックグラウンドで処理することで、複数の処理を同時に実行することができます。
音楽の演奏をバックグラウンドで実行すれば、Webブラウザと同時に動かすことができるのです。

サーバとの通信をバックグラウンドで処理すれば、先ほどの例のような、電話がかかってきたのに電話アプリに切り替わらない、といったことは起きなくなります。

バックグラウンドでの処理は、Javaの標準的なAPIを使っても実現できます。
もちろん標準APIを使ってもいいのですが、Androidではバックグラウンド処理を非常によく使うので、バックグラウンド処理をより使いやすくするための専用のAPIが用意されています

<コース紹介>

このようなAndroidプログラミングにおける注意点やAndroid固有のAPI、カメラやセンサといったスマートデバイスに内蔵された機能を利用するアプリ開発について、より詳しくは次のコースで取り扱っております。ご興味のある方は、ぜひコース概要をご確認ください。
実践!Androidプログラミング (UFN19L) (※)

☆その他、モバイルアプリケーションにおいて必要となる知識や技術について、研修コースをご提供しています。こちらもご参考にしてください。
モバイル関連コースマップ

みなさまと講習会でお会いできるのを楽しみにしています!!

※本コースはナノコネクト社との提携コースです。

本日(5月20日)より、東京ビッグサイトにて、「教育ITソリューションEXPO」が始まりました! イメージ図


今年は、"探す!磨く!活かす!人材のパフォーマンス向上 ~イノベーションの実現を目指して~"と題し、イノベーション人材の育成に通じる各種ソリューションをご紹介しています。

イメージ図

 当社ブース内のステージセミナーでは、1日 約10回、事例や当社の各種取り組みなどを、約15分程度でご紹介しています。
ステージセミナーのスケジュールは、こちらをご覧ください。
  「ステージセミナースケジュール」(PDF)

また、明日(21日)の13時30分からの無料公開セミナーでは、当社コンサルティング部 部長の宮田が、『タレントマネジメントへの第一歩 ~社内の人材分析から職務適性を探る~』というテーマで講演いたします。
先着順となっておりますので、興味のある方は、お早めに 東2ホール 2階のセミナー会場にお越しください。

なお、当セミナーの短縮版(30分)として、ミニセミナー「タレントマネジメント導入事例 ~スキルと職務適性による人材育成の実践~」を、ステージセミナーでも開催いたしますので、無料公開セミナーにお越しいただけない方は、ぜひ、当社ブース内のステージセミナーにお立ち寄りください。
  ・5月21日(木):16時30分~17時
  ・5月22日(金):13時~13時30分


 「教育ITソリューションEXPO」 は、5月22日(金曜日)まで開催しています。
スタッフ一同、皆さまのご来場をお待ちしております!

詳細は、当社Webサイトをご覧ください。
 http://www.knowledgewing.com/kw/event/2015/edix2015.html

月別アーカイブ