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 で書かれているのでよく分からないのですが、また明日やってみよう。

ResearchKit でアンケート ii

ResearchKit でアンケートを作ろうと思い、いろいろ試しています。 先日は、ORKCatalog を build するところまでできました。今回は、自作のアンケートを作るためにいろいろ試行してみます。 ORKCatalog は Swift で書かれていて、Objective-C から覚束ない…

ResearchKit でアンケート

ResearchKit でアンケート画面を作りたくて、いろいろ調べています。 Apple から以下にリンクするといろいろ情報があります。 ResearchKit/ResearchKit · GitHub 丁寧に Getting Started という section があるのでやってみました、ハマりました・・・ イン…

App アナリティクス

先日 Apple からメールが来て、App Analytics を始めますとのこと。 申し込み順で機能の Beta 版使えるらしく申し込んでみたところ、今日になって使ってみてとの連絡が・・・。 早速 iTunesConnect にログインしてみると、メニューが増えていました。 ザッと…

Code Code Reader (for iOS)

バーコードの値を読み取ることができると、応用の範囲が広いと考えます。例えば、家計簿やマイ書籍リストなどを作れるかもしれないと夢が膨らみます。 そこで、バーコードや QR コードをの値を読取ることができるアプリを製作しました。機能は次の通りです。…

applicationDidEnterBackground

バーコードをスキャンするアプリを作りたくて、カップラーメンのバーコードをスキャンすると、銘柄に応じて調理の時間(待ち時間)を計測できるアプリを作成しています。 どんなアプリも作るとハマりどころはあるもの。 今回のツボをいくつか備忘のため記載…

error の対処方法:Xcode

バーコードリーダーを作っています。 UIView 内に円を描写していたところ、いつの間にかエラーがズラ〜っと・・・ CGContextRestoreGState: invalid context 0x0 説明を読むと、serious error なんだそうで、ぜひ治したいのですが、どこのことを指しているの…

iOS KVO

KVO は便利なのですが、利用にあたりいくつかコツがあるなと。 1. keyPath に指定する変数名は、@property で指定した値であること 当たり前と言えば当たり前なのですが、つい、@property で指定していない変数を監視対象にして上手くいかないなぁとか考えて…

Bye Bye Bacteria (for iOS)

iPhone に内蔵されているセンサーを利用してみたいと思い、またゲームを作りました。 まもなく Apple に審査してもらいますので、近日ダウンロードできるようになると思います。 このゲームでは、デバイスの傾きを検知して、画面内の重力方向を制御していま…

Bezier Curve Animation (for iOS)

iOS 向けのアプリを作成しました。 近日公開となりますが、先に紹介ページを作成します。 このアプリは自身の 3 作目になります。 今回は、iAd の実装、Sprite Kit を使わない画面展開などを試してみたいとの理由で作成したアプリです。 このアプリは、次の…