読者です 読者をやめる 読者になる 読者になる

CloudKit で relation はどうやって定義するのか

CloudKit を使って、1 : N の relation はどうやって表現するのか、とりあえず、設計においてどうするのか、理解を深めるため、主に Apple の document を中心に熟読してみました。 CoreDate との比較になりますが、CloudKit の場合、N : N という CoreData …

CloudKit を使ってみた

アプリのユーザーが作ったデータを共有すると色々都合が良いので、BaaS はどれがいいのか調べていたら、Apple 謹製の CloudKit があった。ちょっと試してみたらかなり素直な印象。Apple の公式ドキュメントが一番使える印象。Objective-C で例示してあるのも…

UITableView を配置すると、上部に謎の空白ができてしまう時の対処方法

いつの頃からか、UITableView を画面上に配置すると、謎の空白ができてしまう現象が発生。これ、見た目がすごく悪いので、解決方法がないのか色々調べたのですね。 結局のところ、StoryBoard で、UITableView の配置順を下げると解消するのですが、これが一…

愛宕吾国ハイキング縦走コース

脚がだいぶ仕上がってきたので、12 月にも行ったコースを走ってきました。 今日は気温が低く快晴で風も少なく走りやすい。R1 フーディの上にウインドブレーカーで丁度良い感じ。R1 フーディは走っている間とても快適でした。満点です。 岩間駅から 0740 に走…

info.plist と NSUserDefaults

アプリ内のちょっとしたデータを保存するのに、CoreData に保存するほどでもないんだよなーということがあって、具体的には、観察地を入力する時のデフォルト地点を、前回の場所にしておきたかったんですね、毎回場所を変えてバードウオッチングする人は稀で…

CloudKit Storage

アプリ利用者のデータを統合すると集合知的な利用方法ができる。 今構築中の野鳥観察記録(Field Note)では、例えば有名な探鳥地に行くとして、遭遇できるであろう野鳥の種別とその期待値を出したり、日本各地における渡り鳥の初認日から、自宅周辺での初認…

CoreData relations は valueForKey でも指定できる

CoreData で many to many を指定。あるレコードに関連づけられた N のレコード数は一体どうやって取り出すのだ?と疑問が生じました。一覧の画面で、detail に登録した野鳥の数だけ表示したいと思ったんです。 ダメ元で、relations で規定した文字を指定し…

CoreData many to many における、many の検索

CoreData を使い、野鳥観察記録帳のデータを管理。観察記録テーブルと野鳥一覧を many to many で連結。RDB の場合、 (1) 野鳥観察記録ー(N )観察した野鳥ー(1) 野鳥一覧 のように、テーブルを定義しますが、CoreData では many to many という指定ができる…

フォアフット

フォアフットで走ると速く走れる(らしい)と聞いて、実践中。 初めは全然できなかったのだけど、階段を降りる時のように、着地する側の骨盤を下げ、逆に言うと、軸足の骨盤を上げることで着地しやすくなった。 問題はふくらはぎで、初めは疲労感と痛みで 10…

CoreData relationship, Many-To-Many (N 対 N)について

CoreData を使うと、One-To-Many (1 対 N)や Many-To-Many(N 対 N)を形容できるということで、いろいろ試してみた。 私はもともと RDB を扱っていたので、Many-To-Many の概念がよく分からない。RDB の場合、1 : N : 1 のようにすれば良いわけで、Many-T…

R1 フーディとキャプリーンサーマルジップネックフーディの違い

冬のジョギングは寒いので、ウインドブレーカーの中に着るのにいいのはないものかと探していたところ、patagonia のキャプリーン 3 (以前はこう呼んでいたはず、いつのまにかキャプリーン4、サーマルと名称が変わった気がする・・・)が良さそうとのことで…

Swallow tail vent foodie

ランニング用に TNF のスワローテイルフーディを愛用していたのだけど、長年の酷使に耐えきれず、ついにチャックが壊れてしまった・・・レースとかでも使っていたので、チャックの金属部分が汗で腐食して取れてしまった。これでもまだしめようと思えば閉めら…

self.property と _property の違い

objective-c でプログラムしていて、property の値をいじりたい時、self.property と _property どっちにすればいいのか、ふと悩んでしまいました。 実験した結果、self.property とすれば、setter が呼ばれました。ので、setter を呼びたい場合は、self.pro…

NSPredicate で検索句を作る

バードウオッチングをして、フィールドノートを記録するためのアプリを作成中です。日本で観察できる野鳥名のマスタは日本野鳥の会から取ってこれたので Core Data に入れました。頭一文字を入力したら、候補の野鳥名が一覧で出てくるようにするにはどうする…

AppDelegate を他のクラスで使う

AppDelegate とは何だろう。delegate とどう違うのか。 私も未だ明快にわかっていないのですが、AppDelegate は、Application 全体を通じて共有するようなオブジェクトを定義しておいて、必要に応じて参照・更新するような使い方をするようです。言ってみれ…

愛宕吾国ハイキング縦走コース

今年はトレイルの大会に出なかったので、年末の三連休に自主練することにしました。茨城方面の山でどこか良いところはないかと探してみたところ、3つほど候補があり、筑波連山縦走も考えたのですが総距離 37 Km と、あまりにも長く、自信がないので、愛宕山…

SKScene で、view が取り除かれる時に呼ばれるメソッドは・・・

SKScene で、View が表示される時に呼ばれるメソッドは、 -(void)didMoveToView:(SKView *)view ですが、その view が取り除かれる時に呼ばれるのはなんでしょう。 取り除かれるというのがよくわかんない表現になっていますが、結局のところ、別の view を表…

force touch

MacBook 12 inch ですごいと思うのが force touch。トラックパッドを押すと、感覚的にはどう考えても押している反応があるのに、装置が作り出した擬似感覚。電源 off で、トラックパッドを押しても全然押した気がしません。これはすごい。 これ、何がいいこ…

Mac Book 12 inch

MacBook 12 inch を使っています。 これで Xcode を使って開発までしているので、酷使している感がすごいなと。。 インターフェースが usb-c だけとか、キーボードが打ちにくいなど前評判が悪い意味ですごかったのですが、実際使ってみるとほとんど不満があ…

CAShapeLayer で描写した図形を消すには?

CAShapeLayer で描写した図形を消そうと、 CAShapeLayer* circleLayer; /* 描写する部分、省略 */ [circleLayer removeFromSuperlayer]; とすると、消えない。 なんで?と思って調べたら、 [circleLayer removeFromSuperlayer]; circleLayer = nil; とすると…

SKShapeNode で線の先端を丸くするには・・・

SKShapeNode で線を引くと、デフォルトで先端は角ばっています。 今作っているゲームでは、これがちょっと具合が悪いというか、先端を丸くしたいと思い調べて見たところ、こんなプロパティが・・・ some_SKShapeNode.lineCap 指定できる値は 3 種。 kCALineC…

iOS 10、株価(アプリ)でちょっとした変化。

iOS

iOS 10 になってから(だと思う)、株価(アプリ)にちょっとした変化があった。 個別銘柄の株価と対比する目的でインデックスを表示したく、日経 225 を表示していました。検索で「225」とすると見つかりますので、それを表示するようにします。 株価では、…

UIView の座標系と SpriteKit の座標系を変換する

SpriteKit の scene の座標系は、原点 (0, 0) が左下です。UIView の座標系は Mac でおなじみの右上になります。なぜこのような違いが出るのかというと、これは想像ですが、SpriteKit は重力の概念があり、0 は ground の方が都合がよく、計算のコストを低く…

デスクトップの順番を固定する:macOS Sierra

Mavericks あたりからだったか、仮想デスクトップ(最近この言い方しないね。なんでだろ)を使えるようになって、デスクトップを複数持てて便利。仮想デスクトップは、Linux で AfterStep を使っていた頃から重宝していて、MacOS でデスクトップをクリックし…

KVO の勘所

アプリを作っていると、「ある値が変化したら・・・」ということをしたくなるもので、KVO と呼ばれる仕組みが Objective-C に用意されています。 「あるクラスの値が変化したら知らせてね」ということを登録できます。便利なんですが、覚えておかないといけ…

SpriteKit: すべての子ノードを削除する

SpriteKit で、画面上にスワイプでスクロールさせたかったのですが、解説読んでもさっぱり分かりません。自作されている方もいるようで、幾つかソースも見たのですが、それでもさっぱり分かりません。仕方ないので、左右にスワイプしてページを切り替えるこ…

ポケモンGo、部屋にいながらにして歩く?

ポケモンGo(iPhone)で一人歩きできてしまう裏技です。 1. アプリ起動 2, コントロールセンターを表示 3. コントロールセンターをすぐ閉じる 2, 3 を繰り返すと勝手にキャラクターが歩きます。 結構遠くまで歩きますが、無限に遠くに行くわけではありません…

自作 class の sub class

自作 class の sub class なので、何か性能が悪くなってしまったか?と勘違いしていましたが、循環参照問題によるものと判明し解決できたので、sub class で色々実験。 まず、super class で定義済みの @property は sub class で再度定義する必要なし。当た…

cannot find declaration for class A superclass of class B.

ゲーム作成中です。 SpriteKit 使ってます。 ゲームシーンは SKScene で起こしています。 あるシーンを SKScene の sub class として作りました。class A とします。 次に、class A の sub class を起こしました。class B とします。 build するとエラーにな…

KADI Port 到着

MacBook 12 inch を入手したのが去年の 5 月。外部ポートが 1 つしかなくて、どうかなこれと思案しましたが、ついに 5 年目に突入してしまった MacBook Air 11 inch の冷却ファンがイカれ気味で異音がひどく、いつ壊れるかヒヤヒヤで、おっかなびっくり使う…

Objective-C は古くさい?

Swift 全盛の今日この頃、Objective-C でプログラム組むのはいかなる理由によるものか?という命題があります。 当方、Swift には今のところあまり関心がない(もとい、学習する意欲がない)のですが、それは何でか自己分析しました。 まず、Objective-C を…

クラスメソッドとは何か。

Objective-C のメソッドを大別するとクラスメソッドとインスタンスメソッドの 2 種類あり、その区別は定義するときに、頭に+ が付いていればクラスメソッド、- が付いていればインスタンスメソッドになります。 ところで、通常プログラムを書くときはインス…

CoreData で Entity を subclass 化すると 4 ファイル作成されるようになった

CoreData で Entity を新設したらファイル一覧で右クリック、New File... します。 その後、テンプレート選択画面になるので、Core Data、NSManagedObject subclass を選択し Next ボタンを押します。 すると、新設した Entity を元にして、.m, .h ファイル…

CoreData でいきなりエラーの対処方法

CoreData アプリを作ろうと、Master-Detail テンプレートで use coredata する。 テンプレートの通り、変更なしで build すると問題なし。 次に、CoreData の entity を追加して build するとエラー・・・ たったこれだけでエラー・・・ 敷居高いね・・・(…

delegate とは何か(5)

具体的に delegate を使うように記述します。 STtouchPointCircle は、丸の class です。 STtouchPointCircle.h #import <UIKit/UIKit.h> @class STtouchPointCircle; @protocol STTouchPointCircleDelegate - (void) beginImageTouched:(NSSet *)touches withEvent:(UIEven</uikit/uikit.h>…

delegate とは何か(4)

ところで、丸をタッチしたら・・・という記述をしたいので、UIViewController.m の touchesBegan に記載を行いましたが、よく考えてみると、丸に関する記述なので、丸の class に記述を行うのが正しい姿なのではないだろうかと思いませんか。 オブジェクト指…

delegate とは何か(3)

ViewController.m だけで記述できるけれども delegate を使ったほうがよいと書きました。 それはなぜでしょう。 理解を促進するために、ViewController.m に記述するとどうなるか試してみます。 - (void) touchesBegan:(NSSet*) touches withEvent:(UIEvent*…

delegate とは何か(2)

delegate は必要性があっての概念なのですが、その必要性が分かっていないとなかなか理解が進みません。 必要性を理解するために、具体的な事例をもとにして整理してみたいと思います。 次のようなアプリを考えます: ・ユーザは画面上の丸を頻繁に動かしま…

delegate とは何か(1)

オブジェクト指向プログラミングのテクニックで delegate と呼ばれるデザインパターンがあります。 iOS のアプリを作るときには頻繁に利用することになるのですが、最近ようやく意味が分かってきた、というより、初めからこれを分かっていないと iOS のプロ…

App Store のレビューに要する期間がずいぶん短くなった。

先日、BezierCurveAnimation II を無事リリースししました。 Bezier Curve Animation II Satoshi TANAKA Productivity Free AppStore に上市するには Apple の Review があり、その後リリースとなります。 去年ぐらいは review の期間が 1 週間ぐらいかかっ…

パスの合成

UIBezierPath などで path を複数作って、それを合成する方法がわからなかったのだが、調べてみたところ、appendPath メソッドが用意されていることが判明。 例えば次のような感じで path を合成できます。 NSMutableArray* aBeziers = [NSMutableArray arra…

アシックス、ライトレーサー

スカイセンサーを履きつぶしてしまったのでターサーにしようかなと思ったけれど、消しゴムのように減っていく靴底に多分耐えられないだろうと、ライトレーサーを購入。 耐久性を考えて TS に。 ライトレーサーは以前も履いていたのだけれど、耐久性は目を見…

UIView で表示順序を変える

UIView で色々object を配置していくとどんどん上に積み重なっていく。 順番を変えたい時にどうするか。 調べたところ、addSubview した後、sendSubviewToBack すればよい。 この method では後ろに配置することができる。 code の例は次の通り。 [self.canv…

Bezier Curve Animation II (for iOS)

アプリ作成しました。 以前作った、Bezier Curve Animation の改良版で bezier curve のポイントをいくつでも増やせるようにしてあります。 その気になれば、複雑な絵もきっとかけると思います。

Aged Eyes Mate (for iOS)

最近、コンピュータの画面を見すぎなのか、視力低下が著しく、細い文字を見やすくできるアプリを作成しました。 よろしければ使ってください。 Aged Eyes Mate Satoshi TANAKA ユーティリティ 無料

ResearchKit でアンケート vii

昨日、MA の場合選択肢によっては排他制御が必要と思い、実装の方法について document で確認したのですが、選択肢の文字列は array で指定するだけで、排他の制御は定義時にはかけられそうにないということが分かりました。もし実装するとしたら、Next ボタ…

ResearchKit でアンケート vi

MA の設問を設定する方法を調べてみたのですが、document を読んでもサッパリわかりません。ORK Catalog の source を見て、Swift で書かれているので Obj-C に置き換えてみたところ、すんなりと動きました。今日書いた source は次の通り: ORKAnswerFormat…

ResearchKit でアンケート v

今日は MA の実装をしようと思ったのですが、よく考えたら、昨日実装した SA で疑問点がありました。 SA の選択肢として、「Yes」, 「No」 が表示されるのですが、日本語の場合は「はい」、「いいえ」となります。SA は 2 択しかないわけではなく、より発展…

ResearchKit でアンケート iv

ResearchKit を使ってアンケートを作ろうと思い試行錯誤しています。 以下のページを参考に、血液型を選択する部分はできました。 CreatingSurveys Document まんま、コピペすればできます。 SA (Single Answer) を独自に作るにはどうするかわからずいろいろ…

ResearchKit でアンケート iii

当面の目標としては、SA, MA, FA ぐらいを提示できるようにしたいところです。ちょっと戯れてみましたが資料を読んでもサッパリわかりません。 デモアプリも Swift で書かれているのでよく分からないのですが、また明日やってみよう。