カテゴリー
Appple iOS

iOS11でSafariからカメラやマイクにアクセスできるように!

iOS11でSafariからカメラやマイクにアクセスできるように!

Safariで音声を録音して、それを再生するようなウェブアプリケーションを作りたいなと考えた場合、iOSのSafariではカメラやマイクにアクセスができなかったので、どうしても一度ネイティブなアプリで録音などしてからアップロードしてもらうなどの対応が必要でした。

今回iOS11ではSafari11.0というバージョンとなり、iOSのSafariからでもカメラやマイクにアクセスする、「Media Capture and Streams」をサポートしたみたいです。

この機能を使うには、設定→Safari→カメラとマイクのアクセスをオンにしてもらう必要があります。

また、アクセスする際にユーザー側には「”sample.com”がマイクにアクセスを求めています」というメッセージが出るので、許可してもらう必要があります。

それ以外にもセキュリティ関連や、WebRTCをサポートしたなどの変更があるようです。

Safari 11.0

カテゴリー
Appple アプリ

「MyHint」ってアプリ作ってみたよ

「MyHint」というアプリを作りました

MyHint

MyHint

プログラマなのに、自分の作品がありません。

企業に入り込んではその企業の商品の開発手伝いということが多く、自分の作品を作る時間が無くなります。

でも、やはりプログラマなら自分の作品一つくらいほしい!

「はしれ!ガタンゴトン」というアプリを昔作ってみたものの、Youtubeを主とした動画コンテンツに広告を入れていたため、

グーグルの規約に違反しているとのことで削除されてしまいました。

経緯はこちらから → Androidアプリが規約違反で突然削除された

前回も子供に電車を見せる時に使えていたのでよかったのですが、

今回は自分が使いたいと思うものを作ってみようと計画し、「MyHint」というiOSアプリを作ってみました。

「MyHint」ってどんなアプリ?

世の中いろいろな悩みがあるものです。小さいものから大きなもの、

くだらないもの、大切なもの。人に相談できないもの、自分の中でモヤモヤしているだけのもの。

そんな時に一言だけでもいいから背中を押してくれたり、逆に止めてくれたり。

この「MyHint」はそんな時に使えるアプリです。

「MyHint」起動してボタンをタップすると、一言のヒントがもらえます。

もちろんあなたの心の中を読んだり、スマホの情報から悩みを予測して的確なアドバイスを。。。しているわけではないので、

信じるか信じないか、その通りにしてみるかしてみないかはあなた次第。

結局一言だれかに背中押してもらいたいんだよねって時や、誰かにやめとけって言われたいんだよねって時なんかに使うといいかもしれません。

回答のパターンは結構豊富にあるので、1日に何回かやってみても楽しいですよ。

「MyHint」にはどんな技術が使われている?

プログラマというか、スマホアプリ作っている人ならば気になっちゃいますよね。

バラしちゃいましょう。

ただjsonをとってきて、ランダムに表示しているだけです。

これだけ聞くと、なーんだ、超簡単じゃんって思いますよね。

私はxcode自体も初めて、swiftも勉強はしていたものの初めてに近いくらいの初心者。

最近のiOSアプリとかはwebアクセスするときには基本的にhttpsじゃないとダメみたい。

じゃーhttpsでつなげるサーバーを用意しよう!ってことで、このブログでも使っているサクラVPSのサーバーを、

centos7で再インストール。nginxやらphp7やらmysql5.7やらを入れて、証明書を取得して設定して、ついでだからhttp2で接続できるようにしたれ!とか色々やってましたら、

それだけで1日終わってしまった。。。

もちろんそれ以外の場所でも、例えばswiftという言語自体に苦しめられたところも多々あるし、ライブラリがObjectivCしかないもの使おうとして挫折したり、

いろいろなハードルに遭いながらもなんとかリリースまで行けました。

「MyHint」は審査でリジェクトされた?

実は「MyHint」は初回審査時に一度リジェクトされました!

広告が入っているかどうかを審査時に自己申告するのですが、もちろん入れました。ちょっとでもお小遣い稼げればと。当然入っていると自己申告して審査に臨みました。

その結果、「広告入っているって書いてあるけど、どこにでてくるの?」っていう質問が返ってきました。

あれ?おかしいなとか思いながらソースを眺めていると、広告を表示する部分がおかしくなっていて、

表示されない不具合が見つかり。。。慌てて修正して再審査してもらったところ、すぐにリリースとなりました。

この指摘がなければ広告が表示されないだけなので、アプリには全く問題はないのですが、審査してくれる人の優しさでしょうか。

appleのレビューがすごく早くなりました

Appleの審査を今回何度かしてもらったのですが、ものすごく早くなりました!!

今日はこれが言いたかったんじゃないかというくらい言いたい。

Appleのレビューものすごく早くなったよ!!

レビュー依頼して、本当に24時間以内に何かしらの動きがある。リリースまでのスケジュールがすごく早い。

できてから申請すれば1日以内にThe status for your app, `アプリ名`, is now Ready for Sale.ってメールがくる。

2週間とかかかっていたものが、24時間でおわります。

これはすごくいろんなものが変わるんじゃないかと思う。

例えばだけど、今までアプリのリリースは審査に時間かかるから、慎重にならざるをえなかった部分が、

もっと気軽にリリースできるんじゃないでしょうか。

もちろん不具合とかユーザが離れるようなやつはまずいけど。

やってみて、ユーザの反応見て、ダメなら元に戻すとかそういったことも可能になると思います。

今までもサーバに情報持たせてその設定を読みに行かせるとかすれば、簡単に動きを変えたりということはできたと思います。

ただ、サーバが別途必要になったり、上記のような仕組みを作ったりと苦労が多いのですが、

審査が早ければアプリ自体を更新したほうが早いはず。

今後の機能追加やリリースは?

とりあえずはAndroid版を作っているのでそれをリリースしようと思っております。

このブログを読んで、いっちょ評価してやるか!って人はぜひインストールしてみてください。

そして感想や機能に対してのご意見などいただけると嬉しいです。

iThunesストアにコメントしていただいてもいいですし、直接twitterでも構いません。@rmasco

せっかくリリースしたのだから、いろんな人に使ってもらえるのが一番嬉しいので、

コメントとかめんどいよって人はそっとインストールして、そっと評価してください。

こんなアプリあったらいいと思うんだけど作れない!?って人もTwitterなどでメッセージいただければ、

どこまでできるかわかりませんが、一緒に作りましょう。

というわけで、「MyHint」インストールしてみてください。

 

MyHint

MyHint

カテゴリー
Appple mBaaS Parse.com ニフティクラウド

Parse.comの代わりにニフティクラウド使ってみました

Parse.comのサービス終了を受けて

先日書いたブログ の通り、Parse.com を使ったスマホアプリを作り途中で

Parse.com が終了という衝撃的なニュースを受けて mBaaS とかを調べていたのだけれども、

どれもこれも出来ることは似ているし、こちらも Push 通知 とデータストアぐらいしか使う予定がなかったので、

迷っている時間も勿体無いし、取り急ぎ ニフティクラウドmobile backend に決めて移行してみた。

ニフティクラウドmobile backendへの移行

思っていたより移行が簡単でした〜!

  1. ニフティクラウドへログイン
    → nifty アカウントがない人は nifty アカウントを作成する
  2. アプリの新規作成
    → 適当なアプリ名を入力してアプリを作成
  3. データストア > 作成 > インポート
    → Parse.com からえクスポートした JSONファイル を指定してインポート

この手順だけであっという間にParseにあったデータをニフティクラウドに移行完了。

思っていたより全然簡単だった。インポート機能がちゃんとあって、JSONがインポートできる、

Parse と同じようなデータストアという仕組みも持っているので、ここまでは楽勝!

問題はこの後。。。

ニフティクラウドが用意してくれている SDK をダウンロードしてみると、、、

Swift ではなくて Objective-C でできている。。。

Objective-C は読めなくはないけど今からやるなら Swift だろ!と Swift でアプリ書いちゃったもんだから大変。

まずは Swift からでも Objective-C のライブラリが使えるようにヘッダーファイルみたいなのを作成。

だいたいの記事ではここで Xcode による紐付けをしろって書いてあるけど勝手にXcodeがやってくれたみたい。

ドキュメントにあるようにデータを取得するメソッドなどを書いてみたら、

動いたー!

Swift からObjective-C のライブラリを動かせるように仕組みを作った人ありがとー!

それを今度はローカルのデータに持とうと思ってCoreDataだかSQLiteだかに入れようとしてみたけど、

モジュール入れてもコンパイルエラーが続出したり、そもそもそのモジュールはメンテされていないことがわかって

別のモジュールに切り替えてみるけどやっぱりダメだったり。

最近はPerlやらPHPやらしか触っていないので、他の言語をやると詰まる詰まる。

コード書くよりも環境構築とかでつまずく。Xcodeの使い方が未だによくわかりません。。。

でも新しいことは楽しい!

目標は特に決めていないけど、アプリを完成まで追い込むぞー!!!