Owl on 8月 11th, 2014

昔作ったアプリのソースをマイグレーションするかどうか?

結構悩むポイントだ?

2012年に作成したアトラクション紹介アプリをCopyをして作成しよう。

マイグレーションポイント 1

ARC(Automatic Reference Counting)

Xcode4.2から搭載されたメモリーを自動で管理する機能です。初期に作成したプログラムは、まだこの機能がなかった為にretain/releaseを自分で計算して行っていました。落ちた時はデバッグが大変で、なんと面倒な言語なんだろうなといつもおもっていました。

リフェクタリングはxcodeの以下のプションで出来ます。

 

 

 

 

 

 

 

 

 

ARCに変換が自動で出来るかがチェックされ、出来ないコードは一覧で表示されます。

 

 

 

上のように変換の方法を選択するように指示されている場合は、Fixの方法を選択します。

 

 

自動変換不能の場合はソースコードを修正します。

上のようにautoreleaseしかないコードはエラーになるので削除します。

 

 

 

 

 

 

 

 

上のようなメッセージが出れば自動変換が可能になります。

マイグレーションポイント2

xibをStoryboardに変換する。

これ結構大変です。元のプログラムがtabbarでコントロールするUIなのですが、storyboadにすると画面は全て作り直し。

既に完成している画面なので今回はxibの追加で対応する事にしました。

マイグレーションポイント3

画面サイズの変更。

iPhone5のサイズに変更をします。

iPhone4を前提としたソースなので、自動で5の画面サイズに変換されていますが、当然縦長の影響で画面が間延びしています。

IBで修正出来る所と、ソースの中で設定している部分があるので適時修正して行きます。

以上です。

次はGeofenceの機能をtabViewの旧アプリに追加して行きます。

元のソースはサンプルソースはstoryboadを使用しているのですが、今回はxibを追加する事で対応して行きます。mapviewを既にアトラクションのナビゲーション機能で使用しているので合体します。

Owl on 8月 8th, 2014

昨日に引き続き、ジオフェンスのテスト。

デバッグモードで色々変えて試すも、フェンスの出入りを感知しない。

CLLocationManagerは動作しているようである。

ジオフェンスの設定が不味いのか思いチェックをする。

デリゲート指定:delegate = self;    <——————————————デリゲート指定
測位の精度:setDesiredAccuracy:kCLLocationAccuracyBest  <——–最高精度
位置情報取得間隔:setDistanceFilter:kCLDistanceFilterNone <——–指定なし
GPSの開始:-(void)startUpdatingLocation <———————————GPSの開始

GPSの使用可否:locationServicesEnabledのメソッドが使われていない。

ネットを探るが、イマイチ原因がハッキリしない。
サンプルを紹介している記事にiOS7.0には対応していないと書かれている事もあり、そのサンプルは諦めて他を探す事に。

アマゾンで位置情報を使ったアプリ開発を紹介する本があったので購入する事にした。
早速、付属のサンプルを試します。

機能は先ほどのジオフェンスと変わりないのですが、こちらはiBeaconにも対応しています。

UUIDをUSB型ビーコンで設定。

アプリックスのmybeaconという製品です。

iPhoneアプリ「mybeacontool」をインストールしてUUID、Major、Minorの設定をします。

こちらのサンプルを元にプロジェクトを作成して動かしてみました。

昨日と同じようにシュミレーターで位置情報をカスタマイズ

シミュレータのメニューのデバッグ->位置->位置情報をカスタマイズで緯度、経度を入力

 

 

 

デバッグモード

 

 

 

 

 

 

 

 

 

 

 

しかし、昨日と同様に didEnterRegionに飛んでこない。

あるブログに既にリージョン内にいる場合に正常に起動しないと書かれていた。

なのでシュミレータで一度appleの住所を指定してみた。それから東京タワーを中心にジオフェンスを設定して。経度緯度に東京タワーの位置を入力してみた。

そうするとdidEnterRegionに飛んで来た。

このサンプルではジオフェンスが3レベルで張られているので、その位置に動かしてテストをしてみる。

多少の誤差はあるが、ほぼ大丈夫のようだ。

既にリージョン内にいる場合はどうか?

didDetermineStateを使ってステータスを聞いて

CLRegionStateInsideの場合はstartRangingBeaconsInRegion

CLRegionStateOutsideの場合はstopRangingBeaconsInRegion

を呼んでいるので問題はないようだ。

何度か経度緯度を変えてデバッグしていくと、このCLRegionStateOutsideの前にBeaconの可動範囲10m以内だったらと判断していたために起こったようだ。

実際のビーコンある地点と、シュミレーターのテスト地点が10m以上誤差があるとstartもstopも起こらなかったわけだ。

取りあえずサンプルので起動の確認は出来たので、アプリ作成にはいる。

Owl on 8月 7th, 2014

iBeaconを使った機能が実装出来そうだったので、次はGPSを使用して遠距離のジオフェンスをテストしようと始めた。

仮想のフェンスを地理上の経度緯度に張り巡らして、それの出入りでアクションを取ろうという考え方だ、こちらはiBeaconのように4つのイベントで距離を示すのではなく、自由に設定出来る。ただし誤差は数十メータは出そうなので、近くに来た場合はBeaconを使う事になりそうだ。

GPSを使ったサンプルを使ってテストしてみようと始めた。

MKMapViewを使って地図を表示して、その地図に経度緯度情報のアノテーションを設定する。

設定した座標を中心にMKCircleクラスを使用して、2Dの円形の領域を表示する。

イベントとして以下の3つとなる。

ジオフェンスのON/OFF

座標(経度緯度)

領域の距離

画面の機能は比較的シンプルで、

 

座標を指定して、ジオフェンスの領域を指定して、ジオフェンスをスタートさせる順序になる。

座標はCLLocationCoordinate2Dプロパティを使って地図の中心点の経度緯度を取得します。

領域はUISliderを使って可変でフェンスを設定するか、複数の固定領域(10km/1km/100m)等にするかによって変わるので、取りあえずスライダーを使って可変としてみました。

ジオオフェンスの出入りはCLLocationManagerクラスで監視する事が出来る。

それではテスト開始

現在地をシュミレーターを使って変更

シミュレータのメニューのデバッグ->位置->位置情報をカスタマイズで緯度、経度を入力。取りあえず東京タワー(緯度35.65858)、経度 (139.745433)から始めた。

 

 

 

 

 

 

 

 

 

 

 

 

何度か現在地を変更しジオフェンスに横切らせたが

– (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region

– (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region

共に反応なし、値を変えてみるも全く反応がない。

サンプルが古かったのだろうか…。

明日もう一回トライしよう。

Owl on 8月 6th, 2014

ある知人からジオフェンスを使った街角紹介アプリを考えてくれませんか?

と言う問い合わせがあったので少し調べてみました。

ジオフェンスとはそもそもどういう仕組みなのか、GPSを使ってある距離の中に入ったら指令を飛ばすんじゃないの。その程度の基礎知識しか持ち合わせていません。

現在、スマフォから位置情報を取得出来るのははGPS、Wi-Fi、Bluetoothなので、このどれかを使う事になります。

GPSの利点は遠くの距離までジオフェンスをカバー出来る事。Wi-Fiは50m、見晴らしが良ければ100m行く機器もあります。bluetoothはというと、10m(100平方メートル)程度でしょうか。ただしこれは省電力モードが備わっている4.0であればバッテリー消費は抑えられます。アプリを上げたたままでも殆ど電力を減りません。

という事なので、まずは遠くをGPSを使ったジオフェンスを使って監視して、近くに来るとBluetoothを使った監視に切り替えるアプリにしようと思います。

流行り始めたiBeacon!!

iOS7.0、去年のWWDCで発表されていました。バックグラウンドで起動が出来ないのと、応答速度が遅いのであまり普及してなかったようです。しかし今春の7.12のアップデートでかなり性能が向上したようです。

とにかく簡単なものでテストしようと思いサンプルプログラムを探しました。

機能の発表は去年の話しなので比較的沢山のサンプルが公開されています。

まぁ、とにかく動かしてみます。

以下のサイト参照して実装開始します。

[iOS 7] 新たな領域観測サービス iBeacon を使ってみる

サンプルに複雑さはないのですが、IBに変わってStoryBoardになっていたので少々戸惑いました。

1年近くiPhoneアプリのリリースをしていなかったツケでしょうか、色々と新しい機能が出てバージョンアップされています。

WWDC2014ではSwiftなる新言語がまで発表されている始末、時の経つのは早い。私が覚えたObjective-Cはどうなってしまうのですか。この老兵にまた新言語を学べと、泣き言を言っていても始まりません。

実際、StoryBoardを使い始めて分かった事は、全ての画面レイアウトやアクションリンク等をGUIで繋げて一画面に書いて行くのでディスプレイが小さと見づらい。それからパラーメーターに慣れないと作業効率は上がらない。一人で小さいアプリをすぐに作るのは向いています。後から画面を増やしたりするのは面倒が増えそうです。

取りあえず上記のサンプリアプリを参考に実装してみました。

iBeacon API

フレームワーク

CoreLocation.framework

クラス

CLBeacon

プロパティ

ProximityUUID:Beaconに設定したUUID

major:Beaconに設定ししたメジャー番号

minor:Beaconで設定したマイナー番号

Proximity:相対距離、下記4つがCLProximityに定義されている。

(Immediate/Near/Far/Unknown) ※おおよそ1m/5m/10mを表しているようです。

ドキュメントを読む限りは非常にシンプル。

サンプルでは2つのアプリに別れています。

Beaconを監視する側:Central(監視)

Beacon側:Peripheral

取りあえず2台のiPhoneが手元にあるので、古いiPhoneを発信器として使う事にしました。

サンプルは簡単で、UUIDを触る程度です。

 

しかし、実装して動かしたのですが受信側のアプリには全く反応がありません。

ソースを修正したり、デバックしたのですが反応なし。

ちょっと疲れて、GOOGLEで探すとMacをBeaconに出来ると書かれていたので試す事にしました。

http://weekly.ascii.jp/elem/000/000/210/210915/

 

JavaScriptのnodo.jsを使って動かすようです。サイトに言ってnodo.jsをインストール

ターミナルを開いて実行。bleaconライブラリーインストール。

MACのUUIDを取得

JAVAScriptで10行のコードを作成、保存

ターミナルから実行

それで先ほどのiPhoneのBeacon監視アプリを実行。

来ました!

リージョン監視のメッセージ

続いてレイシングのメッセージ

はいOKです。

 

その後、調べて分かったのですが、私の古いiPhone4はBLEをサポートしていなかったようです。

Bluetooth4.0はiPhone4S以上からのようです。

なので、iBeaconを使うにはそれ以上のiPhoneが必要です。

テスト用に残しておいたSIMフリーのiPhoneなのですが、そろそろ終了の時期なんでしょうか。

iPhone6が今秋に登場という事なの、それと交換するかな。

 

アプリックのBeaconモジュールが¥1600だったので2つ買いました。

設定用のiPhoneアプリをインストールしてUUID等を登録するようです。

問題なく動きました。

 

次回は、このiBeacon機能を街角紹介に組み込んで行きます。

3Dプリンターを購入して1ヶ月、色々試してみました。

まず買ったのは『ダヴィンチ1.0』XYZプリンティングの台湾製品です。

ネットや店舗で情報収集したのですが、どこの店でも在庫を持っている所は少なく、結局ネット購入にしました。

amazonでポチッとすると3日後に届きました。※大きさがヤマト運輸では対応しきれず佐川急便になるようです。

本体価格は¥69,800 +フィラメントカートリッジ¥3,280(容量240m)です。初期稼働用に白いフィラメントカートリッジが100m程付属しているので。初日は本体だけでも制作は可能です。

 

まずはマニュアル、といっても数枚のペーパーが入っているだけで簡単そうです。

 

セットアップをして、制作をし始めるの30分、ホント簡単。台座に調整は事前にしてあり、私の部屋では調整の必要はありませんでした。キャリブレーション機能で調整が出来るようです。

 

MacにXYZware1.0をダウンロードしてします。無料のSTDデータをインポートして印刷です。

 

では、印刷スタート、フィラメントの温度が200度に上昇。台座がウィーンと音を出し上がって行きます。何かワクワクします。

次にノズルが動き始め、四方を測量します。糸上のフィラメントを噴射し始めます。

おぉースゲー。何か作ってる。この今までにない喜びは何でしょうか。だけど、すぐにそれは失敗に終わります…。

 

足の部分が台座から剥がれてしまい、固定されないフィラメントはまるでゴミのように丸まって行きます。急いでスイッチでキャンセル。マニュアル通りに付属のノリを使ったのですが、それでは弱かったようです。ネットで検索すると、トンボ鉛筆の『シワなしPIT』がおすすめだったので、マスキングテープと一緒に購入します。マスキングテープを台座に貼ると、ノリを剥がしやすいです。

 

 


 

 

 

 

 

 

 

そして再び、スタート。待つ事、50分で出来上がりました。しかし見ての通り顔の下にはひげがあり、耳はグチャグチャです。

高さ7センチでは少々小さすぎるのと、下から上にフィラメントを流していくので、空中で何もないない場所ではフィラメントは垂れ下がります。

 

今度は10cmのhanakaを作成してしました。

うーん、中々上手くはいきません。ハイヒールはわりと精密に作成されているのですが上に上がるにつれフィラメントが飛び跳ねているようです。手はどうしても上から下になるので、作成するのであれば仮台を入れるか、腕だけ別の部品で作って接着するのでしょうか。もう少し大きくしてみました、今度は高さ15cmのフクロウです。ここまで大きいとわりと綺麗に出来るようです。ただし制作時間は一晩かかります。夜中に動かして朝起きたら出来上がっていました。6時間はかかると思います。

 

 

 

 

高さは、それ程変わりませんが全体の幅と厚みを考えると10倍以上フィラメントを使うようです。ざっと計算した感じで40mのフィラメントを消費したと思います。約500円でしょうか。

色が単色なので商品としては成立しませんが、ヤスリがけをして縞模様をけして、色づけをすれば田舎の観光地で¥700程度で売られていてもおかしくはありません。

まずは、新橋のタミヤプラモデルに行って、電動ハンディーリューターとモデラーズナイフ、エポキシ造形パテ、薄刃ニッパ、クラフトヤスリ、精密ピンセット、フェイサーを揃えます。

 

 

 

 

 

 

 

 

取りあえず、最初の第一歩はこんな所で終了です。

ダヴィンチは熱溶解積層法プリンターなので精密なモノや大量生産には向いていません。単品もの、サンプルを作成するのは可能だと思います。

例えば、趣味で使うフィットする道具や、アイデア製品を作って試してみる。時間さへあればそんな事が可能になるでしょう。

次は3Dスキャナーとソフトが欲しい所です。今年には3Dスキャナー搭載のモデルが発売されるという事なので期待しています。

後は精密度でしょうか熱溶解積層法で高品質な物を作る事が可能になれば、他の手法と違いコストダウンが可能なので一般に普及する可能性があります。

 

 

 

すっかり開発はご無沙汰してました。

いえ、開発はやっていたのですが、出先企業様の案件を何件かお手伝いさせて頂きました。

そして気づけば2014年、昨年一つのアプリさへリリース出来なかった……。反省、反省、意気地なし、根性なし、またいつもの風に流されどこへやら。あぁ、こんちくしょう。今年は絶対リリース。このままでは若者の仕事場を創るなんて到底不可能じゃー

という事もあって、サーバーをクラウドに移転しました。と言っても、時間なくて友達に手伝って貰いました。

 

 

そして年が明けて2014年。「湾岸IT工房」を建てます。港区海岸に事務所を探してます。

  • 3Dプリンターとスキャーナーを調査中

123 のCubeと国産のSCOOVO C170 16万8000かな、3Dスキャナーポータブル 3D system [Sense 3D Scanner]33万と思いきや、 デプスセンサー kinect for Windowsで出来そうだ。123D CatchってiPhoneアプリもありそう。3dプリンター複合機 ZEUSにはスキャナーもついてるようで。24万9800とコレが夢のって。2万円の[Rebicon 3D Scanner]も欲しい、

  • e-Commerceを作成、取りあえずYahooShopが無料になっていたので申し込む。何か順番待ちのようで…。

自前も作らない事にはと思いwordpressのe-commerceテンプレート落として加工中。いや3ヶ月前に一度トライしたんですけどね。

  • 販促用、iphoneアプリ製作中、いつまでやっているんだろう。もうソースを見ただけじゃ思い出せないな…。

デザイナーに依頼して12ヶ月、そのあいだにUIはすっかり進歩を遂げて、ましてやColection ViewなんてのもXcodeに追加されて、ScrollViewで位置を設定してガチャガチャやった苦労はいったいどうなるのって感じです。

一番の問題は3Dプリンターは作成に時間がかかる事、コーヒカップ一個に6時間以上、それでもって振動に弱い、風が吹くと、もう焦点のズレが発生します。そして素材(石膏、アクリル樹脂、ナイロン、チタン、シルバー)を溶かすため熱が凄い。実際の製品にはまだまだハードルが高いのですが、だからと言って10年かかるかというとそうでも無いような気がします。技術の進歩は速いです。Windows 、iPhoneは5年で市場を独占しました。3Dは何処になる事やら。

mut11 on 10月 22nd, 2012

実機テストが出来ないと思ったらら、プロビジョニングプロファイルが10月で期限切れになってました。

去年の今頃、実機テストをを始めたんだなぁ。1年の経過。しばし感慨に耽る。

でも、看板娘以降、この半年リリースしてない。

制作しては、ボツの毎日。

今月こそは完成させてリリースするぞ!!

WordPress 3.4 が利用可能です ! 更新してください。

って表示されていたのでメインのサイトを更新すると、固まる  !!!!  真っ白!!!  があぁーー!!!

だって、看板娘ブログはOKだったじゃないかぁ!  血圧上がる!!!

◉原因判明

cache関係のプラグインがエラーになるようです。

  • wp-content/db.php
  • wp-content/plugins/db-cache-reloaded-fix

を削除して、もう一度アップデート。無事終了!

所が翌日、管理画面を開こうとすると、真っ白。あぁーぁ

プラグインのアプッデートがいけなかったのか、でもコメントが80%以下のものはしなかったのに…。

またもや

  • wp-content/db.php
  • wp-content/plugins/db-cache-reloaded-fix

を削除、今回は戻さず別フォルダ眠ってもらいます。

何とか、管理画面が開けるようになりました。

記事に書いておこう。

お助けリンク

  • http://blankrune.sakura.ne.jp/blog/archives/15886
  • http://creativememomemo.com/wordpress_trouble_3-4renewal/
mut11 on 6月 12th, 2012

2880×1800ピクセル「世界最高の解像度」 で発表されました。

価格は18万4800円 Retinaディスプレイはこのモデルのみ。

クアッドコアCore i7(最大2.7GHz)と最大16Gバイトメモリ(オンボード)、最大768GバイトのSSD

GPUはGeForece GT650M(VRAM1GバイトGDDR5)USB 3.0ポート、HDMIポート、SDXCカードスロットも搭載

厚さ1.8センチと現行MacBook Proより薄型化された。重さは約2.02キロ。バッテリー駆動時間は7時間

クアッドコアCore i7/2.6GHz、8Gバイトメモリ、512GバイトSSDの構成で23万8800円

WWDCの発表を待ってノートPCを買おうと思っていたのですが、やはり高価ですね。

 

 

mut11 on 5月 5th, 2012

リリースから一ヶ月以上が経ちました。

第三弾はスポーツクラブのナビを作ろうと思っていましたが、navi関係は少し置いといてゲームを作る事にしました。

Androidの保持者が以外と多い事から、両方でのリリースも考えてTitaniumに手を出しました。titanium sutadioをインストールしてサンプルを動かしたのですが、結構砂利道で、バージョンの関係やらソースのゴミやらでズッコケました。

quicktigame2dというゲームモジュールがあって、androidにも対応してて一石二鳥なんですが惜しいです。

もう少し、動かない場合の情報があればやる気にもなるんですが、ちょっとこのまま進めても時間がかかるので、もう少し様子を見る事にしました。4月に出たTitanium2.0にバグが少なくなればもう一度トライします。

それで基本に戻ろうとCocos2Dを見ています。iPhoneの2Dゲームならコレで十分なので、今日から始めようかと思っています。

既に企画もあって、持ち込み先も決まっているのですが、アプリも3個目となると結果が欲しい所です。

現在、リサーチをしています。

アプリを作成しているとiPhoneは皆が持っていると勘違いしちゃうんですよね、労働人口の10人に1人。9割はiPhoneをもっていない人です。持っていない人にアピールしても誰もダウンロードしません。

iPhoneを誰が持っているかという事が非常に大事になります。

20代女性 30代女性 40代になると女性は減ります。機械アレルギーでしょうか。

30代男性 40代男性 男性は若い人は以外と少ない。通信費とかガラゲーの関係ですか。

10代は多いんですよね。お金持ちの親が持たせる物って事でしょうか。

結果、主婦は少ない。青少年も少ない。

20代、30代女性▷ファッション、美容、恋愛

30代、40代の男性▷仕事、情報端末、癒し

という事でしょうか

ネイルサロンや絵文字のアプリは大流行りですが、ギャンブル系のアプリは以外と流行っていません。

レシピ系も思った程伸びていません。

20代。30代女性が望む事=30代、40代男性が望む事、コレがテーマです。