Monthly Archives: 2月 2013

OSS Sampler 1.0リリースしました!

0
Filed under iPhoneアプリ, Torques
Tagged as , , , ,

先日、iPhone向けアプリ「OSS Sampler」をリリースしました!
残念ながら、ゲームでもなく、一般的なツールでもなく、誰でも意味がわかるものではないアプリです。想定する利用者は「iPhoneアプリの設計/開発に携わる関係者」というニッチなアプリです!

オープンソースライブラリを試せるアプリ

「OSS Sampler」を、一言で言うなら「iOS向けオープンソースライブラリの実装サンプル集」です。

OSS Sampler - Torques

導入の経緯

iOS向けのオープンソースライブラリは、日々増えています。
特徴的なUIを実現したアプリが人気が出ると、その動きを実現したライブラリがgithubに出るまでそう時間はかかりません。
場合によっては、そのアプリを作った本家がライブラリを公開したりすることもあります。

新しくアプリを作ろうとしたとき、そのようなライブラリをgithubなどで見て回るのも良いのですが、実際の動きを知りたいことは多くあります。
有名なライブラリ紹介サイト「COCOA CONTROLS」で調べるのもいいのですが、スクリーンショットのみで実際に触ることはできません。

そこで、少しずつそういうものを実際のアプリに組み込んで動いてる様子を見ることが出来たら便利じゃないのか?
そういうものをまとめたアプリがあれば、開発者じゃなくてもUI設計時に気になるライブラリをひと通り触ってみてもらうこともできますしね。
ということで作ったのが「OSS Sampler」です。

まずは21個!

最初のバージョンでは21個のライブラリを実装してみました。
しかし、既に次期バージョン用に10個以上追加しており、調整が完了したらリリースする予定です!

要望受け付けます!

「こういう機能がほしい!」「あのライブラリを載せて欲しい」だけではなく、「私がアップしたあのライブラリも載せて」という要望がありましたら遠慮なく連絡ください!(アプリ内に連絡先は載っています!)

OSS Sampler - Torques


[AD]

↓数多くのオープンソースライブラリが掲載されていますので開発者は必見!

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

↓今気になっている書籍です!

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

Objective-Cで一番簡単なプロパティ設定(w/ ARC)

0
Filed under Objective-C
Tagged as , ,

なんか、最近のObjective-Cでは、次のような宣言で使えるようなので、まとめておきます。

ARCで楽々プロパティ!

iOS 5以降で、ARCを使っている前提ですが、次のようなコードでプロパティ宣言出来て、問題なく動作するのです。

1
2
3
4
5
6
7
8
// Foo.h
#import <UIKit/UIKit.h>
@interface Foo : NSObject
 
// 外部から見えるように、ヘッダーに宣言.
@property	NSDictionary* dicInfo;
 
@end

これだけで使えるようなのです!
実装側には何も記述する必要はなく、使用する場合には(実装側(Foo.m)で使う場合にも) self.dicInfo としアクセスします。

これはObjective-C 2.0の仕様なのかな。
それともARCの恩恵?
よく分からなくなってきたけど、2013年、今はこれで出来ます!

retainとか、なんだとかもう書かなくていいんですよ!
ソー、シンプぅ!!

敢えて内部用変数名を定義する

「内部では、直接アクセスしたいよー」という時には、
実装側(Foo.m)で下記のように記述します。

1
2
3
4
5
6
@implementation Foo
 
@synthesize dicInfo=_dicInfo;
 
// ..
@end

上記のように記述しておけば、実装側(Foo.m)内では、 _dicInfo でアクセスできます。
でもねー、もう、あんまりメリットないし、これはやらなくてもいいかな。

ハードルが下がった!

初心者向けとかだったら、このブログのようにウダウダと説明するんじゃなくて、「ヘッダーで宣言(w/定義)すれば使える」と断言しても殆どの場合問題無いんじゃないかと。

ということで、
いつの間にか、かなりiOSアプリ制作のハードルが下がっている!!というお話でした。


[AD]

↓オープンソースライブラリが盛り沢山!とりあえず手元に1冊必須!

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

↓Unityやるならこの一冊!実際に購入し、読みました。良書です!

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

GitHubでPull Requestしてみた

0
Filed under git
Tagged as , ,

オープンソースで公開されているソースを修正し、本体に取り込んでもらうこと、これをソーシャルコーディングと言います。
GitHubでは、Pull Requestを送ることがそれにあたります。
ちょっと試しに使っていたライブラリにバグを見つけ、簡単に直せたので、トライしてみました。

今回の作業対象は次のリポジトリです。

1. Fork

まず、ベースとなるライブラリをForkします。
GitHubウェブサイトで行います。
元になるライブラリのページを開き、右上にある『Fork』ボタンを押します。
github-fork
しばらくすると、Forkが完了します。
github-fork-done

2. clone

次に、Forkしたリポジトリをcloneします。
ターミナルで下記のように、自分側のリポジトリをcloneします。

1
$ git clone git@github.com:HiromichiYamada/JSBadgeView.git

3. branch

作業用にブランチを切りますが、その前に、まずは下記のコマンドで一旦現状を確認してみます。

1
2
3
4
5
6
$ cd JSBadgeView/
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/gh-pages
  remotes/origin/master

作業用ブランチは”work”と名付けて、下記のコマンドでブランチを切ります。

1
2
3
4
5
6
7
8
$ git checkout -b work master
Switched to a new branch 'work'
$ git branch -a              
  master
* work
  remotes/origin/HEAD -> origin/master
  remotes/origin/gh-pages
  remotes/origin/master

すぐに作業しているブランチが切り替わった(workに*が付いている)のが分かります。

4. コード修正

切り替えたブランチ”work”で、コードを修正します。
つまり【Forkしたリポジトリの、作業用ブランチでコードを修正】するということですね。
動作確認もしておきましょう。

5. 修正確認

修正が完了したら、ターミナル上でもコードの変更点を確認しておきます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ git diff
WARNING: terminal is not fully functional
diff --git a/JSBadgeView/JSBadgeView.m b/JSBadgeView/JSBadgeView.m
index a0c5348..76c60f7 100644
--- a/JSBadgeView/JSBadgeView.m
+++ b/JSBadgeView/JSBadgeView.m
@@ -145,8 +145,8 @@
             newFrame.origin.y = (superviewHeight - viewHeight) / 2.0f;
             break;
         case JSBadgeViewAlignmentBottomLeft:
-            newFrame.origin.x = -textWidth / 2.0f;
-            newFrame.origin.y = (superviewHeight - viewHeight) / 2.0f;
+            newFrame.origin.x = -viewWidth / 2.0f;
+            newFrame.origin.y = superviewHeight - (viewHeight / 2.0f);
             break;
         case JSBadgeViewAlignmentBottomRight:
             newFrame.origin.x = superviewWidth - (viewWidth / 2.0f);

6. commit

この変更点を下記のようなコマンドでコミットします。

1
2
3
4
$ git add JSBadgeView/JSBadgeView.m
$ git commit -m "Fix layout bug for JSBadgeViewAlignmentBottomLeft"
[work b099562] Fix layout bug for JSBadgeViewAlignmentBottomLeft
 1 file changed, 2 insertions(+), 2 deletions(-)

7. push

リモート(GitHub側)にPUSHします。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ git push origin work
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 411 bytes, done.
Total 4 (delta 2), reused 0 (delta 0)
To git@github.com:HiromichiYamada/JSBadgeView.git
 * [new branch]      work -> work
yamadambp:JSBadgeView Hiromichi$ git branch -a
  master
* work
  remotes/origin/HEAD -> origin/master
  remotes/origin/gh-pages
  remotes/origin/master
  remotes/origin/work

これでPUSH完了です。
リモート側にも、remotes/origin/work が作成されていることが分かります。

8. Pull Request

GitHubの該当リポジトリページで確認してみると、確かに”work”ブランチが増えている事がわかります。
github-branch-work
この中身を見ると、実際にソースも修正されています。
今の状態は【Forkしたリポジトリの、作業用ブランチでコードを修正】が出来た、ということですね。
この状態をFork元に、Pull Requestします。
“work”ブランチであることを再確認し、ページ上部の『Pull Request』ボタンを押します。
github-pullrequest-button
送信先と、送信元を確認したら(グラフィックが多用されていて分かりやすいですね!)コメントを記入し、下部にある『Send pull request』ボタンを押します
github-pullrequest-send
これでPull Request完了です!

9. merged

あとは修正側でやることはありません。元リポジトリのコミッタの対応を待つだけです。
今回の場合、直ぐに本体側でmergeしていただけました。
github-merged

参考ページ


[AD]

↓今回とてもお世話になった雑誌。Pull Requestについて詳しく書かれています!

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

↓Chapter 12にGitHubの使い方があるようですよ!

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

GitHubからPermission deniedと言われたら

0
Filed under git
Tagged as ,

何度もハマっているので、メモしておきます。

Permission denied!

久しぶりにGitHubを使うと、言われるのが、Permission denied (publickey)

1
2
yamadambp:~ Hiromichi$ ssh -T git@github.com
Permission denied (publickey).

octocat: permission denied
こう言われた時には、下記のようにしてSSH鍵への設定を設定を追加すればOKです。(私の場合。。)

まず、現状を確認。

1
2
yamadambp:~ Hiromichi$ ssh-add -l
2048 aa:aa:99:9e:a5:7f:eb:d9:0d:1d:bf:1e:1f:1b:aa:aa /path/to/other_id_rsa (RSA)

↑本当はここにGitHub用の鍵ファイルも表示されて欲しいけど、見当たらないのが問題です。

次のようにして追加します。

1
2
3
yamadambp:github Hiromichi$ ssh-add /path/to/github_id_rsa
Enter passphrase for github_id_rsa: <パスワードを入れます>
Identity added: github_id_rsa (github_id_rsa)

上記設定後に再確認。

1
2
3
yamadambp:github Hiromichi$ ssh-add -l           
2048 aa:aa:99:9e:a5:7f:eb:d9:0d:1d:bf:1e:1f:1b:aa:aa /path/to/other_id_rsa (RSA)
2048 aa:aa:99:1a:d0:7f:d7:a8:63:ba:11:d1:19:50:aa:aa github_id_rsa (RSA)

↑OKですね!

1
2
yamadambp:github Hiromichi$ ssh -T git@github.com
Hi HiromichiYamada! You've successfully authenticated, but GitHub does not provide shell access.

↑無事、GitHubへのアクセスも出来ました!


[AD]

↓GitHubを使うにあたり、参考にしています!

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

↓会話形式で本文が書かれているので、分かりやすそう!

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。