サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
iti.hatenablog.jp
こんにちは。中山です。 Kafka(Apache Kafka)は、複数台のサーバで大量のデータを処理する、分散メッセージングシステムです。 一般的に、Kafka というと、ログ収集ですとか、IoT におけるデータハブとして使われる場面が思い浮かびます。 しかしこの Kafka、近年話題のマイクロサービスとも、相性が良いそうです。 Kafka とは マイクロサービスと Kafka 問題点 Saga パターンによる解決 モジュールを作る Spring for Apache Kafka(spring-kafka)を使う データ送信側サービスのモジュール作成 プロジェクト作成 主なクラス、プロパティファイル データ受信側サービスのモジュール作成 プロジェクト作成 主なクラス 実行環境の準備 Kafka の起動 Topic の作成 実行 データ受信側サービスの起動 データ送信側サービスの起動 サービ
こんにちは。中山です。 前回の「 こんなときどうする?Flutter でモバイルアプリ開発 」に続きまして、今回は、Flutter と Firebase を連携して、Flutter アプリから、Google の機械学習ライブラリである「 Google ML Kit 」の機能を利用してみたいと思います。 目次: 準備 準備1 Flutter アプリプロジェクトの作成 準備2 Firebase プロジェクトの作成 準備3 Firebase を iOS アプリから利用するための設定 準備4 Firebase を Android アプリから利用するための設定 プラグインを使う pubspec.yaml の設定 Anroid プラットフォーム固有の設定 実行 まとめ 準備 Flutter と Firebase を連携して利用するための手順については、公式の Codelab にある「 Firebase
こんにちは、野口🐴です。 みなさん年賀状書いていますでしょうか。 ITIの今年の年賀状は趣向を凝らしてWebAR年賀状を作ってみました。 🔰Why WebAR🔰 なぜWebARをしようと思ったのかというと、今までスマホではAndroidでしかできなかったブラウザからのカメラアクセスがiOS11(Safari)からできるようになったためです。 Webを使ったARアプリならスマホアプリと違ってインストール不要なため、アクセスがより容易となります。 🔮ライブラリ🔮 以下の2つのライブラリを使用してマーカー型WebARアプリを作成します。 AR.jsはWebでARを実現することができるオープンソースライブラリです。 A-FrameはMozillaが開発したWebVRフレームワークでHTMLタグだけで簡単に3D空間を構築できます。 github.com aframe.io 🐈できたもの
こんにちは。中山です。 機械学習機能によって、音声をテキストに変換するサービスである、Google Cloud Speech API。こちらが先日、正式にリリースされたとアナウンスがありました。その精度がいかほどのものか、試してみたいと思います。 課金体系 Google Cloud Speech API は、Google Cloud Platform 自体の無料トライアルの枠(2017年5月時点では、12ヶ月間有効な $300 分の枠)を利用すれば、課金なしにすぐに試すことができるようです。 なお、Cloud Speech API は、毎月60分までは無料で利用でき、それ以降は時間単位で課金されるとのこと。(参考) 準備 まずは公式ページの「クイックスタート」の内容にしたがって、準備を進めていきます。 なお今回は、Mac(macOS Sierra)環境で動作を検証しています。 1.Goog
こんにちは。中山です。 これからは チャットボット(Chatbot)の時代だ、と言わんばかりに、最近いろいろとニュースを目にするようになりました。 www.newsweekjapan.jp jp.techcrunch.com しかし、いざ、その Chatbot を開発するとなった場合に、開発者はどのあたりに注意すればよいのか、どのような点を意識すればよいのか、という疑問が出てきます。 この疑問に対する、ひとつのガイドラインになるかもしれない、以下のような記事がありました。 venturebeat.com 今回はこの記事を一緒に見ながら、Chatbot 開発で留意すべきポイントを確認していきたいと思います。 紹介したこちらの記事では、 「11 rules to follow when building a chatbot」 という形で、Chatbot を開発する上で従うべき 11 の事柄を紹
こんにちは。中山です。 先の Google I/O 2015 では、GCM(Google Cloud Messaging)が iOS にも対応する、ということが発表されていました。 このあたりの情報については、以下のようなページが参考になります。 Google IO 2015で発表されたGCM (Google Cloud Messaging)の新機能 - Qiita Cloud Messaging | Google Developers Google I/O 2015 - Google Cloud Messaging 3.0 - YouTube しかし、発表からけっこう時間がたっているにもかかわらず、「GCM + iOS」の動作を手軽に試すための、日本語で書かれた簡単なガイド記事というのはなかなか見つかりません。 というわけで、今回私のほうで、 「とにかく簡単に GCM + iOS を
こんにちは。中山です。 Google Developers Blog の以下の記事を和訳しました。 Google Developers Blog: Google Cloud Messaging and Firebase Google Cloud Messaging (GCM) と Firebase Laurence Moroney(Google デベロッパーアドボケイト) 先日の Google I/O では、Firebase の拡張が発表されました。今回はこれに関連して、「Firebase Cloud Messaging (FCM)」と、「Firebase Notifications (FN)」も合わせて紹介したいと思います。 開発者のみなさんにとっても、役に立つ機能がきっとたくさんみつかることでしょう。 従来の Google Cloud Messaging (GCM) は、Android
こんにちは。中山です。 先着 1万名で公開されていた、LINE BOT API Trial Account に、私も申し込んでみました。 この LINE BOT API と、Heroku、PHP を使って、とりあえずお金をかけずに、「うどん屋さんをご案内する bot」を作ってみました。 LINE BOT API Trial Account 登録 LINE BOT API Trial Account は、こちら のページから申し込みを行いました。すでに募集は終了しているようなのですが、 BOT API が利用開始になる前に、その一部の機能をお試しいただけます。 との説明もありましたので、近いうちに正式公開されるものと想像しています。 ※追記:Trial Account、募集再開したとのこと。 LINE BOT API とは、公式の情報によりますと、 BOT API Trial Account
こんにちは、間藤です。 久しぶりとなってしまいましたが、今回はAndroid StudioのBuild TypeとかFlavorについて書いてみます。何を今更な話題かもしれませんが、自分のためにもちょっと整理しておきます。 なお、今回利用しているのは、以下のバージョンです。 Android Plugin 何はともあれ、GradleのAndroid PluginのUser Guideに目を通しておくのがよいでしょう。 Gradle Plugin User Guide - Android Tools Project Site Build Typesのところを読むと、デフォルトでdebugとreleaseのtype(ガイドにはversionと書かれてます)があるということです。 特に説明は不要かと思いますが、debugは開発時用のビルド設定を、releaseは本番リリース用のビルド設定を行う目的
こんにちは間藤です。 iOS9がリリースされ、最近はXcode7を利用する機会も増えてきました。(今のところ状況に応じてXcode6と使い分けています) ところで、既存のプロジェクトをXcode7で開くと、ビルド警告で推奨されるビルド設定を適用するように促されます。今回はこの警告に関して取り上げてみようと思います。 警告の内容 他の要素が入り込まないよう、まずXcode6でサンプルプロジェクトを新規に生成します。これに何の修正も加えないままそのプロジェクトをXcode7で開きます。すると以下のようなビルド警告が出ます。 これを選択すると、詳細を示すダイアログが表示されます。 最初の2つは、Bundle identifierの指定に関するものです。 3つ目の警告は、Swiftの単体テストに関する推奨設定のようです。 qiita.com 指摘に従って設定変更すると、ビルド設定が以下のように追加
こんにちは、間藤です。 今回はAndroidアプリのメモリリーク検知をサポートするライブラリLeakCanaryについて取り上げます。メモリリークはテストをしていてもなかなか表面化しないので、見つけられないままになっているケースも多いのではないかと思います。iOSであればInstrumentsを利用できます。AndroidでもMATを利用するという選択肢もありますが、手順がなかなか煩雑で効率的とは言えないと思います。(私がMATに慣れてないだけかもしれませんが・・・) LeakCanaryを導入すると、手間なくメモリリークが検知できるようになります。なお、今回利用したLeakCanaryのバージョンは1.3.1です。 導入 GitHubのReadmeに書かれている通りの手順を踏むだけですが、念のため触れておきます。 まず、LeakCanaryをプロジェクトに取り込みます。Gradleのスク
こんにちは。中山です。 前回、「DeepBeliefSDK」を使って、AndroidスマートフォンやiPhoneから、簡単に「ディープラーニング」の世界を体験することができました。今回はさらに一歩進んで、その画像認識の「学習」の機能を試してみたいと思います。「キン消し」を使って。 DeepBeliefSDKの、学習機能サンプル 前回と同様に、「DeepBeliefSDK」付属のサンプルプロジェクトを使って、画像認識の学習機能を試してみたいと思います。 「DeepBeliefSDK」付属の、「学習機能」用サンプルプロジェクトはiOS版のみでしたので、今回は、 Mac OS X(10.10.4) Xcode(6.4) iPhone5S(iOS 8.4) という環境で試しています。 まずは「DeepBeliefSDK」のソースファイル一式を、まだ取得済みでなければ、Github リポジトリから取
こんにちは、間藤です。 だいぶ前のことになりますが、Monacaが「Crosswalkに対応した」という記事を見ました。 blog.asial.co.jp iOSでは、WKWebViewクラスがiOS8から用意されるなど、ハイブリッドアプリの高速化のための選択肢も増えてきているようです。 記事を見てからだいぶ間が空いてしまいましたが、Crosswalkについて導入手順をさらっと確認してみましたので、以下にメモしておこうと思います。(パフォーマンスの改善効果を計測したりはしていません。単に導入手順を記した程度の内容です。。。) 今回試す内容 Crosswalkのトップページから"Documentation"を選択すると、「Getting started」のページに遷移すると思います。(2015/3/24現在) ここで示されている手順ですが、「The default Crosswalk pac
こんにちは、間藤です。 以前、Fabric CrashlyticsKitについての記事を書きましたが、今回DeployGateのアプリ配信機能を試す機会がありましたので、利用してわかったことなどをまとめてみようと思います。 今回はAndroidアプリの配信を試します。(iOSは試してません。いつも中途半端で申し訳ないです。。。) DeployGateとは Fablicと同様、AndroidやiOSのネイティブアプリをベータ配信してくれるサービスです。もともとはミクシィの社内ツールだったそうです。 engineer.typemag.jp 料金プランには、個人用と組織・チーム開発用と選択肢がありますが、今回は個人用のFreeプランを使いました。チーム用だと複数の開発者が共同作業するための機能も提供されるようなのですが、実際どんな機能が提供されるのかは、ざっと見たところ確認できませんでした。ただ
こんにちは、中山です。 Android用の通信ライブラリである「Volley」。 ウェブで検索すると、いろいろな解説記事が見つかります。 複雑になってしまいがちな通信関連処理が、簡単に実装できるようになるこの「Volley」ライブラリ。 もちろん、通信のタイムアウトや、通信失敗時のリトライ回数なども、簡単に設定することができます。 しかしこのリトライ回数を増やしたとき、ちょっと想像していなかった挙動になりましたので、紹介してみたいと思います。 まずはVolleyライブラリが動作するサンプルアプリケーションを作成します。 今回は、Android Studioから「MyVolleySample」という新規プロジェクトを作成しました。 「build.gradle」ファイルを開いて、以下のようにVolleyライブラリの設定を追加します。(dependenciesブロック内に「compile 'co
こんにちは。中山です。 先日、WIRED.jp に以下のような記事がありました。 この記事で紹介されているアプリUI(ユーザインタフェース)のコンセプトでは、二本指、三本指、ドラッグの方向など、「画面へのタッチの仕方」を変えることで、「画面を見ることなく」、さまざまな機能を呼び出すことができるようになっています。 ・・・ クレンのコンセプトにおいて、タッチスクリーンの画面は、メニューやボタンで区分けされていない。どこにでもタッチしてよい。すなわち、各種の制御は、タッチの仕方によって行うのだ。 2本の指で上方向にドラッグすると、音量を上げられる。 3本の指でドラッグすると、オーディオ・ソースの変更が可能だ。4本なら車内温度を、5本なら空気の流れを制御できる。 ・・・ これ、なんで今まで思いつかなかったのだろう!と思ってしまいました。 私自身、毎日の通勤で、自動車を運転しています。 やはり運転
こんにちは、間藤です。 今回は、Twitter社のFabricが提供するサービスのうち、Crashlyticsのアプリのベータ版配信(Beta Distribution)について取り上げてみます。 まずは導入 導入手順は、すでに多くの方が情報を提供してくださっていますので、この記事であらためて紹介する必要もないかと思います。私は、以下の記事を参考にさせていただきました。 qiita.com 手順の補足 基本的に上に紹介した手順通りで問題はないと思うのですが、私はSDKの導入のところで躓いたところがあったので補足しておきます。 アカウントを作成してアプリをまだ1つもFabricに登録していない状態だと、ブラウザでFabricにログインしても、ダッシュボード画面に到達することはできません。ダッシュボード画面に遷移するには、上記手順を踏んで、アプリをFabricに登録しなければなりません。それが
野口です。 モバイルアプリのテスト自動化フレームワークAppiumのInspectorという機能を使ってみようと思います。Inspectorを使うことで、操作した内容を簡単にコードとして記述してくれます。今回はiOSネイティブアプリで試してみたいと思います。 Appiumの概要・テスト実行については以下の記事をご参照ください。iti.hatenablog.jp iti.hatenablog.jp 実行環境 実行環境は以下の通りです。 ホストPC OS X Mavericks 10.9.5 Xcode 6.2 Appium Version 1.3.7 (Ophiuchus) iOSシミュレータ 8.2.0 テストするアプリは以前と同様、Appium公式サイトのサンプルを使用します。 公式ドキュメント等には記載は見つけられなかったのですが、Ophiuchus(へびつかい座)というコードネーム(
こんにちは、間藤です。今回もAndroidネタです。 ActivityやFragmentのライフサイクルは、把握できているようで実はあまりわかってなかったってことがよくあります。少なくとも私はそうです。 ViewPager+FragmentPagerAdapterの構成で、Fragmentの生成/破棄がどうようになるか、いまひとつわかってないことに気付き、サンプルコードを作成して確認してみることにました。以下にその結果をまとめてみます。この記事を読んで、「おやっ?」と感じた方は、一度ご自分でも調べてみては如何でしょうか。 なお、間違った内容にならないよう注意して確認はしていますが、見落としもあるかもしれませんので、以下の内容をそのまま鵜呑みにせずに、実際に動作確認されることをお勧めします。 サンプルコード サンプルコードは、FragmentPagerAdapterの「Class Overv
こんにちは、間藤です。だいぶ間が空いてしまいましたが、またもやAndroidネタです。 前回は、ViewPagerを利用するうえで押さえておきたいポイントを確認してみました。今回は、Fragmentのトランザクションに関するものです。このネタは、「Stack Overflow」の以下の投稿をベースにしています。 android - How to handle Handler messages when activity/fragment is paused - Stack Overflow ちゃんと目を通せば「なるほど」となるのですが、(私にとっては)最初わかりにくかったので、私が理解した内容を以下に整理してみようと思います。 IllegalStateException Fragmentの操作でこの例外が発生するシナリオを考えてみます。 ある画面上のボタンをタップすると、ネットワーク上のデ
間藤です。 前回はSelendroidについて取り上げましたが、モバイルの自動テストの本命は以前にも取り上げたAppiumではないかと思います。Selendroidについてざっと確認した後、その勢いでAppiumの最新バージョン(1.2.0:2014/7/7現在)の動作確認もしてみました。今回はさほど時間もかからずに確認できたので、簡単にメモを残しておこうと思います。 なお、確認した環境は以下の通りです。 ホストPC OS X Mavericks v10.9.4 Node.js v0.10.29 Appium 1.2.0 Android(実機) Android4.4.2(Nexus10) Chrome 35.0.1916.141 今回のゴール 今回は、Android端末のChromeを使って自動テストを行うことをゴールにします。 AndroidDriverやSelendroidでは、Web
こんにちは、斎藤です。 「スクラムガイドを読む」の第2回目です。 「スクラムガイドを読む(第1回)」はこちらです。 第2回目は、スクラムガイドの下記の内容に関して書いていきます。 スクラムイベント スプリント スプリント計画ミーティング デイリースクラム スプリントレビュー スプリントレトロスペクティブ スクラムの成果物 プロダクトバックログ スプリントバックログ インクリメント 「完了」の定義 結論 スクラムイベント スクラムでは、イベントを設けて規則性を作り出し、スクラムで定義されていないミーティングの必要性を最小化している。イベントには、時間に上限のあるタイムボックスを使う。これは、計画プロセスで時間を無駄にせず、必要な分だけ時間を使うようにするためである。 スプリント以外のすべてのスクラムイベントは、何かを検査・適応する公式の機会である(スプリントはその他のイベントの入れ物である)
こんにちは、斎藤です。 アジャイル開発やスクラムに関して、日本でも徐々に広まりつつあり、書籍やネットを見ている限りではよく考えられた素晴らしいプロセスフレームワークのように思えます。 しかし、実際に実践したことが無い者にとっては、いざやってみると色々な問題に遭遇してうまくいかないのではないかという不安もあります。 今回は、原点に立ち返ってスクラムを開発した、Ken SchwaberとJeff Sutherlandによって書かれたスクラムガイドを読み、スクラムのフレームワークを理解しながらウォータフォール型開発との違いなどについても書いていきたいと思います。 スクラムガイドの日本語版はここにあります。 スクラムというものがどういうものかを理解したいのであれば、上記のスクラムガイドを読んで頂く方が短時間で早いと思います。 この記事ではスクラムガイドの全文を引用していますが、輪読のようなつもりで
初めまして、津田です。 Windows上で開発を行っていると環境構築にもあれこれ手間がかかりますよね。 Macだとbrew install hoge、Linuxならyum install hoge等で済んでしまうところが、Windowsでは 公式サイトにアクセス インストーラーを探してダウンロード インストーラーを実行 と多少手順が増えてしまいます。 チーム内でツールを統一しようと思ったらあれとこれとそれをどこそこからインストールしてと、手順書作成しろと言われることもあるでしょう。 Windowsだからしょうがないかと思っていた時期もありましたが、それChocolateyでできるよ!ということで、Windows用のパッケージマネージャChocolateyを触ってみたので、使い方を紹介したいと思います。 Chocolatey #とは ChocolateyはWindows上で動作するソフトウェ
こんにちは。中山です。 以前、DODOcase で注文していた Google Cardboard VR Toolkit が、先日やっと届きました。注文してから、1ヶ月半くらいかかりました・・・。 私自身も、注文したことを忘れかけていたんですけど、せっかくですので、これと、それから Google が提供する VR Toolkit ライブラリを用いて、なんか作ってみたいと思います。 Google Cardboard とは このあいだの Google I/O 2014 で発表されていた、これのことです。 今回購入したのは、DODOcase が、Google Cardboard の作成に必要な一式をキットにして販売していたものです。 実は、Google Cardboard は、その設計図が公開されていて、かつ、段ボール紙やマジックテープなど、わりと身近にある素材で作成することができるので、当初は私
こんにちは、石尾です。 JSLintを利用して、JavaScriptの構文チェックを行っている人は多いかと思います。 JSLintサイトで、JavaScriptをコピペして利用したり、 http://www.jslint.com/ jslint.vimやjslintを開発環境に設定して利用している人もいるでしょう。 jslint.vimで正しいJavaScriptを書く | monoの開発ブログ MacでJSLintをの実行環境をいい感じに整える。 - modifiedの日記 また、JSLintが組み込まれたエディタやeclipseプラグインでJSLintの構文チェックを行っているかも知れません。 Komodo Edit: Free Editor for Perl, Python, Tcl, PHP, Ruby, HTML, CSS, Javascript http://marketpla
こんにちは、間藤です。 巷ではGoogle製MVC(MVW)フレームワークのAngularJSが流行っているようですが、残念ながらこれまでのところ業務で利用したことはありません。どんなものかくらいは押さえておこうと数か月前に公式サイトのチュートリアルをさらってみましたが、これがなんともよく出来ていて一人で関心していました。AngularJSチームは、テストにも非常に力を入れていて、ProtractorやKarmaといったテストツール(両方ともNode.jsのパッケージです)を開発しています。Protractorは、seleniumを利用してブラウザの自動テストをJasmineで書くことができます。(Mochaなど、別のテストフレームワークも利用できますが、デフォルトはJasmineだそうです。) で、今回はKarmaです。 KarmaとJasmineの関係性を整理しながら話をすすめられたら
こんにちは。中山です。 「無料で活用!AWS ー EC2 + Ruby on Rails 4.1(その1) ー」では、Amazon Web Services(AWS)の EC2 インスタンスを作成して起動するところまでを実践してみました。 今回はそのインスタンス上で、Ruby on Rails(バージョン4.1)の環境を構築して、サンプルアプリを動作させてみようと思います。 なお「Ruby on Rails」については、当ブログの記事「Ruby on Rails4.0を使ってみる」、もしくは公式のガイドページを参考にしてください。 1.EC2 インスタンスの起動 今回も、クライアント側は Mac を利用します。 EC2 インスタンスが停止している場合は起動して、コンソールから SSH 接続を行います。 (詳しい手順については、前回の記事の「3.EC2 インスタンスの起動と終了」を参照してく
こんにちは。出石です。 最近のWeb制作では、PCのみならずスマートフォンやタブレットを意識する事が増えています。 サイト自体を別にするという事もあったりしますが、今回はCSSフレームワークの「Bootstrap」を使ったレスポンシブデザインを試してみました。 準備 Bootstrapは現在3.2.0が最新です。 使い方は一式を読み込むだけです。 ここでは簡単にCDNから読み込みます。(もちろんダウンロードして自サーバから読み込んでも可能です) <!-- Latest compiled and minified CSS --> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"> <!-- Optional theme --> <link rel="sty
次のページ
このページを最初にブックマークしてみませんか?
『iti.hatenablog.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く