iOSでジオフェンスに触れる①

こんにちは増島です! ポケモンGoがリリースされてしばらく経ちました。 最近ではゲームやO2Oサービスなど色々な領域で位置情報の重要性が増しているような気がします!! 先日iOSでジオフェンスについて触れる機会が有りました。その時学んだことを2回に渡って書きたいと思います。 ジオフェンスとは 仮想的な地理的境界線のことを言います。 ある特定の領域をジオフェンスとして設定し、移動体の侵入、退出をトリガーとしてイベントを発生させることができます。 例えばジオフェンスを使用すると下記のような機能を実現することが出来ます。 1.ある店舗を中心に半径500mで領域を作成する 2.ユーザがエリア内に入った時に店舗のクーポン券を配布する ジオフェンスを使っているサービス ジオフェンスを使っているサービスとしては下記のようなものが挙げられます。 Airウォレット https://airregi.jp/wallet/ ショプリエ https://shoplier.jp/...

AmazonのURLを短くするブックマークレット

どうも、和田です。 最近、The Tomorrow ChildrenというPS4のゲームをやっています。どこかで見たような赤い感じの国な雰囲気を醸し出している、Minecraftライクなゲームです。 The Tomorrow Childrenでは、労働があなたをプレイする! さて、本日は表題にある通りAmazonのURLを短くするブックマークレットを作りました。 こちらのリンクをブックマークとして保存をして、Amazonの商品ページでクリックすると使用できます。 作った意図として、AmazonのURLを共有するときに、そのままペーストすると以下のようにダラっとしたものになってしまいます。 https://www.amazon.co.jp/Deep-Learning-Java%E3%...

AndroidでCloudVisionを使った際のGoogle Developer Consoleの登録の流れ

お疲れ様です、佐藤です。 初投稿になります! AndroidでCloudVisionを使ったOCRアプリを作ってみました。 その際、Google APIsの登録が少し複雑だったため まとめてみました。 何ができるの? FACE_DETECTION(顔検出) LANDMARK_DETECTION(観光名所などの名前) LOGO_DETECTION(ロゴの検出) LABEL_DETECTION(カテゴリの検出) TEXT_DETECTION(文字の検出) SAFE_SEARCH_...

JavaScript(ES6)のジェネレータを試してみる

初めまして、初投稿です! 株式会社あゆたに所属する、元岡(もとおか)と申します。 主に Android や iOS 等のスマフォアプリの開発を行っているエンジニアです。 最近は PhoneGap 等の クロスプラットフォームツール や Node.js を使った案件も行う事もあって、JavaScript を使う機会が増えています。 私自身は Webのフロントエンドの経験が浅く、またES6 (ECMAScript6)についても触れる機会がなかったので、...

AI関連技術を使ったサービスについて

こんにちは増島です!  最近はAI、ディープラーニング、機会学習などのキーワードをしょっちゅう聞くようになりましたね。 あゆたでもちょくちょく話に出るようになりました。 僕も流れに取り残されたくないとは思いつつ、勉強を開始できていない現状です。 それを使って何が出来るのかなどイメージが湧かなかったのでとりあえず取っ掛かりとしてどのようなサービスに使用されているかを調べて纏めました。 AI関連技術を利用したサービス 現状でも事例は膨大にありそうなので、個人的に面白いなと思ったものを挙げています。 AI関連については「機会学習」「ディープラーニング」「コグニティブ・コンピューティング」など色々なキーワードがありますが、 今回は特に分類せず「AI関連技術」と一括りにして紹介します。 この他にも面白そうなものを見つけたら随時追加していきます。 シェフ・ワトソン https://www.ibmchefwatson....

Nifty Cloud Mobile Backendでプッシュ通知のお話

こんにちは増島です! 先日シン・ゴジラを見たのですが、僕の生活圏内の街がことごとく破壊されていたのでとてもショックでした。 話は変わりますが、作成しているアプリでNifty Cloud Mobile Backendを使用しています。プッシュ通知の実装の機会があったので、今回はその話をします! 環境 【ネイティブ】 iOS 【サーバサイド】 Node.js はじめに Mobile Backendのコンソールから手作業でプッシュ通知を送ることもできますが、 今回の例はサーバ側のイベントをトリガーに対象を絞ってプッシュ通知を送る例です。 証明書の登録やデバイストークン取得処理については今回触れません。 それらについては下記のページをご参照下さい。 http://mb.cloud....

Swiftでスライダーライブラリを作って学んだあれこれ

こんにちは増島です! オニドリルにモンスターボールを60個使用しましたが捕獲出来ず、悔しさで眠れませんでした。家の近くにポケストップがあまり無いのでモンスターボールの確保にはいつも必死です。 話は変わりますが、以前iOSのスライダー系のライブラリを公開しました。 その際CoreGraphicsやUIControlなどあまり触れていなかった部分を触ることが出来てとても勉強になりました。 今回は作成を通して学んだ事をiOSのTipsとしてお話します! 公開したライブラリはこちらになります。 https://github.com/shushutochako/CircleSlider UISliderを円形にしたイメージでしょうか! 使い方によってプログレス表示なども出来るようになってます。 UIViewをくり抜く アプリのチュートリアルなどでボタンのヒント表示などで使われているのをよく見ますね! 今回のライブラリだと円形のバーの内側のところで使われています。 internal class TrackLayer: CAShapeLayer { internal init(bounds:...

iOS8での「Hiragino Sans」の罠

こんにちは増島です。 iOS10のリリースがもうすぐですね! エンジニアの方は嬉しさとともに10対応が心配なのではないでしょうか。 サポート対象にするOSはアプリごとに異なると思いますが、ある程度の歴史があったりで10リリース以降も暫くはiOS8もサポート対象にするプロジェクトも多いかと思います。 作成中のアプリでは10リリース以降もiOS8以降をターゲットにする方針なのですが、 タイトルの内容で少しハマってしまったのでお話したいと思います! 新規に画面を作成したところiOS8のみ遷移に時間が掛かってしまうという事象がありました。 今回はサンプルということで、この通り一つUILabelがあるだけの簡単な画面で事象を再現します。 こちらの画面の読み込みにかかる時間を計測してみます! AppDelegate.swift func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // 起動時の時間を保持する startTime...

FizzBuzzコードゴルフ

お久しぶりです、和田です。 本日はFizzBuzzとコードゴルフについて紹介です。 FizzBuzz? FizzBuzzとは、 最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの次の数字を発言していく。ただし、3で割り切れる場合は「Fizz」(Bizz Buzzの場合は「Bizz」)、5で割り切れる場合は「Buzz」、両者で割り切れる場合(すなわち15で割り切れる場合)は「Fizz Buzz」(Bizz Buzzの場合は「Bizz Buzz」...

iOSのライブラリを宣伝できるサービスまとめ

こんにちは増島です! オープンソースライブラリを作成してGitHubで公開したものの中々スターがつかない‥ なんていうことありますよね! 今回はiOSのライブラリ作成したら宣伝に使いたいサービスをまとめました!! またライブラリ探す場合にも使えるので、是非参考になればと思います。 ライブラリ管理ツールから使用出来るようにする どこかのサイトなどに載せてもらう前にまずはこれでしょうか! 使用する側としてはライブラリは一元管理したいもの。これらのツールに対応することで圧倒的に注目度が変わるのではないでしょうか! ちなみにiOS用のツールはこのようなものがあります。 CocoaPods https://cocoapods.org/ Carthage https://github.com/Carthage/Carthage Swift Package Managerが公式から出たことによって、Swift製のプロジェクトではこれらのツールがどう活用されていくか‥ という感じですがまだまだ使用しているプロジェクトは多いかと思います。...