Archive for 5月, 2015

Update iPhone App ‘PPPPiano’

月曜日, 5月 18th, 2015

5年ぶりにiPhoneアプリをアップデートし、先週承認されました。(12日)
6年前にリリースした’Perfect Pitch Practice Piano’です。

https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=320982874&mt=8

iOS8で使えなくなった等のレビューがありましたので、対応させていただきました。
もっと早く対応したかったのですが、開発していたMacがクラッシュした事故もあり、リリースがかなり遅れました。
ユーザの皆様にはご迷惑をおかけしました。

また、iPhoneOS2の時代のプロジェクトファイルなので、APIやライブラリ、Xcodeのファイルが現在と大きく変わっていて、戸惑いました。画面オリエンテーション(ランドスケープにならない)や起動スクリーン(表示されない)に手間取りました。iOS側の変更でプログラムが動かなくなったとき、当時とXcodeの開発環境もかなり違うため、修正にかなり時間がかかります。長くサポートすることは大変なことですね。しかし動作したということは、よかったと思うべきかもしれません。
プログラム仕様は変更はありません。画面の部品が変わっているので、若干レイアウトをずらしました。

Macが使えなくなったとき、本当に気持ちが萎えました。他にAndroid,Windowストアアプリにも興味があったこともあり、そちらに行ってからはiOSにはほとんどノータッチ状態になってしまいました。復旧したハードディスクから過去のプロジェクトを新しいMacのXcodeで動くように少しずつ手をつけていました。最近仕事で再びiOSにかかわるようになって、モチベーションが少しずつ上がってきたのは、幸いでした。
他のアプリもできる限り対応していきたいと思っています。(互換性があやしいやつもありますが・・)

Swift : Functional ?

日曜日, 5月 3rd, 2015

Swiftの関数型言語の特徴についてのメモです。私の好みの部分だけビックアップしています。
環境 : Xcode 6.3 / Mac OSX 10.10.3

f1
f2

ソースはGithub Gistにあります。
https://gist.github.com/systemsblue/526eb360ec2ffc57a8a9

・Generator
無限の数列を生成するクラスです。引数により有限も可能です。

・Curry
関数のカリー化です。Swift自身対応しているのですが(f2)、f1の方がいろいろと応用がききそうです。コメントのf1は、簡略化した表記です。Haskellみたいです。

・Pipe
F#のパイプ演算子のように記述できます。(便利なのでいろいろと使えます。一番上に定義) 

g(f(x)) -> x |> f |> g

カリー化の部分適合の考え方を参考にすると、引数を与えられます。

参考:
http://undefinedvalue.com/2014/07/13/fs-pipe-forward-operator-swift