【アプリ】PicsPicker 1.0 をリリースしました

2015年4月11日土曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加


新アプリ PicsPicker をリリースしました。カメラロールの写真や動画を選択して他のアプリに渡すという単純なアプリです。


1日ごとにグルーピングしてまとめて選択することができます。


ビューアもついてます(動画の再生も可)


指定サイズに縮小できる。



初の Swiftを使ったアプリで四苦八苦しました。でも実際 Swiftで書いたのは100行ぐらいで写真選択の部分は昨年 Objective-Cでガリガリ書いた自作ライブラリがメイン。Swiftの使い始めとしてはちょうどよかったかも。

このライブラリは githubで公開している。


このライブラリを使うとこのアプリの写真選択機能と同じものが簡単にできる。

Swiftは面白い。が、Objective-Cのゆるゆるさに比べるとチェックが厳しいので慣れるまでが大変。




【アプリ】EverGear 3.0 メジャーアップデートしました

2015年1月28日水曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加



本日 EverGear 3.0 がリリースされました。数年ぶりのメジャーバージョンアップになります。基本機能はあまり変わっていませんがデザインとアイコンをすべて一新しました。さらに iPhone6 / iPhone6Plusに対応、そして iPadでも利用できるようになりました。


新しくなった EverGearを紹介します。

(参考)ランディングページ

特徴

EverGearは エバーノートへの投稿に特化したアプリです。このアプリの一番の特徴は投稿前の下書き機能が充実しているところです。

下書きの一覧


下書きは通常のテキストはもちろん、

写真を添付することができて
ちょっとしたメモも書けます。

カメラ撮影はもちろんのこと、
アルバムから複数の写真を取り込むことができます。


クリップボードからは画像やテキストが取り込めます。

写真とクリップボードは画面全体が上へスライド
した後にその下から現れます。この下から現れるエリアを
「ドロワー」と呼んでいます(アイコンが引き出し
なのはその為です)。


写真は専用タブを用意していてスライドで眺めることができます。


EverGearのもう一つの大きな特徴が「ひな形」。
あらかじめテキストやノートブック、タグを定義しておくと
下書を新規作成する時のひな形(テンプレート)として利用できます。


登録したひな形は、下書きを作る時に
さっと呼び出すことができます。


下書の仕組み

EverGearでもっともわかりづらい(?)下書の仕組みについて図解してみました。


テキストは1行目がタイトルになります。長い文章などはここに書きます。「メモ」は文字と写真を1まとめにしたカードのようなもので、このメモは1つの下書きに複数付けることができます。メモには必ずしも写真をつける必要はなく、文字だけのメモも作ることができます。またメモごとに作成日時と位置情報が自動で記録されるようになっているので、ちょっとしたライフログにも最適です。写真の入ったメモは写真のタブで地図と一緒にスライドで観ることができるようなっています。

下書きをエバーノートへ送るとテキスト、メモ、メモ、... の順でレイアウトされたノートができあがります。
投稿したノートの例

このエバーノート上のレイアウトは4種類から選ぶことができます。

  • サムネイル+通常画像
  • サムネイルのみ
  • 通常画像のみ
  • プレーン(CSSなし)
いろいろ試してみてお好みのレイアウトを探してみてください。



送信の流れ

もう一つ EverGearでわかりづらい送信の流れについて、こちらも解説しておきます。

まず下書を送信するとノートは「送信」タブに
移り、すぐに送信処理が始まります。

オフライン(ネットワークに接続していない)の場合は
ここで待機状態になります。その後オンラインになり
次第送信が始まります。通信エラーなどで一時的に
待機状態になっている場合は、該当するノートを
右フリックしてメニューから「再送信」を選びます。



送信が終わると履歴に移ります。

履歴タブを開くと過去に送信完了したノートの
内容を確認することができます。



エバーノートへ送信したノートであっても
下書に戻して再編集することが可能です。
(フリックメニューから下書きへ戻します)

注意点としては、この時に別の端末で同じノートを
変更してもそれはEverGearには反映されないというところです。
編集後に再送信すると、エバーノート上のノートは上書きされ
るのでご注意ください。



なお、もし送信前に手直ししたい場合は下書に
戻すことができます。※送信中は元に戻せません。



メニュー

最後によく使う「メニュー」について補足しておきます。

一覧形式で表示される画面ではセル(行)ごとに
メニューが用意されています。

メニューはセル(行)の上で指を左または
右へすべらせる(フリック)と現れます。
左メニューだけでなく、右メニューが使える
セルもあるのでいろいろな画面で試してみてください。


サポート

Facebook / Twitter / メールにて受け付けています。質問や感想がありましたらお気軽にどうぞ。

EverGearサポートページ(Facebook)




リリースやバグ情報、開発状況などを発信しています。

@evergear(Twitter)



Lakesoftのサポートページ(Facebook)



メールアドレス






新しくなった EverGear を是非お試しください。




[Autolayout] アニメーション中に一時的に高さ0になると怒られる場合

2015年1月7日水曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加

アニメーションなどで一時的に高さ0にすると下記のように怒られる。これは制約で高さ指定をしているから。
2015-01-07 08:14:06.763 EverGear[474:96170] Unable to simultaneously satisfy constraints.
 Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
    "<NSLayoutConstraint:0x1740836b0 V:[UIView:0x17419d330(44)]>",
    "<NSLayoutConstraint:0x174083b60 V:[UIView:0x17419af70(0)]>",
    "<NSLayoutConstraint:0x1740834d0 V:|-(0)-[UIView:0x17419d260]   (Names: '|':UIView:0x17419af70 )>",
    "<NSLayoutConstraint:0x174083430 V:[UIView:0x17419d260]-(0)-[UITableView:0x15084b000]>",
    "<NSLayoutConstraint:0x174086630 V:[UIView:0x17419d330]-(0)-|   (Names: '|':UIView:0x17419af70 )>",
    "<NSLayoutConstraint:0x1740869a0 V:[UITableView:0x15084b000]-(0)-[UIView:0x17419d330]>"
)

Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x1740836b0 V:[UIView:0x17419d330(44)]>

この場合は制約の Priorityを下げてやればいい。

デフォルトの Required(1000) を Hight(750)に変更すると出なくなった。

- - - -
Autolayoutに徐々に慣れてきた。便利、というかマルチスクリーン対応では不可欠。

あけましておめでとうございます 2015

2015年1月2日金曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加

昨年は2本の新作をリリースすることができました(目標10本だったけど)。



今年は新作目標を3本として色々と作っていきたいと考えています。あと前から考えていたWebサービスも1本作りたいと思ってます。

1月はEverGearの新バージョン3を出す予定です。お楽しみに。


2015年もよろしくお願いします。


【KickReminder】iOS8 / iPhone6 / iPad に対応しました [ver2.2]

2014年11月13日木曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加

ようやくですがiOS8に対応しました。



選んだリストが反映されない、とほほなバグも直してあります。

UIはさらに無駄を無くしてこれ以上ないくらいシンプルにしてみました。送信ボタンすらありません(標準キーボードの「送信」を使う)。


とにかく早く登録したいという方はお試しあれ。
※期間限定で無料セールやってます(2014/11/15ごろまで ※価格を確かめてからダウンロードして下さい)。



【StackOne】新バージョン1.6.1リリース

2014年11月4日火曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加

エバーノート投稿アプリ【StackOne】の最新バージョン 1.6 がリリースされました。
おくばせながら iOS8&iphone6/plus対応版です。もっと早いリリースの予定でしたがウィジェット機能却下などがありとても遅くなってしまいました。


URLスキームにモード追加


新たに modeパラメータを追加しました。
mode=0 テキスト入力
mode=1 ビデオ
mode=2 カメラロール(アルバム)
mode=3 写真撮影


本文に予約語が利用可能に


以前からルールのヘッダやフッタで利用できた %で始まる予約語を本文でも利用できるようになりました。

ツールバーから % ボタンを押すと予約語のリストを表示できます。


挿入した予約語は送信時に置換されて Evernoteに登録されます。


ルールでヘッダ・フッタの無効設定


ルールでヘッダ・フッタを無効化することができるようになりました。



ウィジェットについて(今回機能はありません)


当初予定していたウィジェット機能は残念ながらAppleにリジェクトされてしまいました。ランチャー用途でのウィジェット利用はダメらしい。

今後もこの方針は変わらなさそうなのでこの機能はお蔵入りになりそうです。。参考までに(記録の為に)掲載しておきます。

↓ボツ記事
ウィジェットには4つのボタンを配置することができて、それぞれ好みのルールと起動モードを指定することができます。設定画面はこんな感じ。

ボタン色にはルールのカラーが反映されます。

↑ボツ記事ここまで


なおリリースを急ぐあまり設定画面にウィジェット設定を残すという大ポカをやってしましました。
ここで設定してもウィジェットには出てこないのでご注意下さい。
次バージョンでは設定項目を削除します。


- - - - -
エバーノート投稿が楽しくなる StackOne を是非お試し下さいませ。


[iOS8] NSObjectに新プロパティ4つ

2014年9月22日月曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加

iOS8ではNSObjectに4つのプロパティが新規に追加された。

NSObject.h
@property (readonly) NSUInteger hash;

@property (readonly) Class superclass;
 :
@property (readonly, copy) NSString *description;
@optional
@property (readonly, copy) NSString *debugDescription;

正確に言うと情報が増えたわけではなく、従来メソッドだったものが readonlyプロパティに変更された。

iOS7の時はこんな感じ。
- (NSUInteger)hash;

- (Class)superclass;
 :
- (NSString *)description;
@optional
- (NSString *)debugDescription;


通常は問題にならないが class_copyPropertyList()を使っていると話が違ってくる。iOS7までは含まれなかったこれらのプロパティが取得できることに注意が必要となる。自分の場合、iOS7の時にエンコードして作成したアーカイブファイルを iOS8でデコードする時にこれが原因で失敗した。
最初はアーカイブの互換性が無くなったかと思い少々びっくりしたが。

アプリで使っていたライブラリ(自作)はこれ。


class_copyPropertyList()でプロパティ名を取得して、それを使ってNSCoding準拠のエンコード/デコードを行うライブラリ。class_copyPropertyList()で hash/superclass/description/debugDescriptionと予期しないプロパティ(しかもreadonly)を拾ってきたことが原因でデコードに失敗していた。対処としてはクラスが NSObjectの場合はclass_copyPropertyList()で拾ってきたプロパティを無視するようにした。対処としてはこの4つのプロパティ名が来た時は無視するようにした。

(補足)とは言っても class_copyPropertyList()を単純に呼び出しても自クラスで定義したプロパティしか返らない。再帰的に親クラスへ遡って NSObjectに到達するケースのみが問題になりうる。LKCodingObjectはまさにそのケース。最新版(1.3.1)では既にこの問題は対応済み。
→ どうもそうではないようだ。


(参考)
Retrieving property list of a class in iOS

NSObject has some "new" properties in iOS 8

人気の投稿(過去 30日間)