ラベル iOS の投稿を表示しています。 すべての投稿を表示
ラベル iOS の投稿を表示しています。 すべての投稿を表示

2012年3月27日火曜日

CAEmitterCell のパクリネタ

ネタが無いので、パクリました。_( TxT)_

Emitting (発光 by Google 翻訳先生) のパクリネタ

本家を読んでくださいね。

パクリ元

UIKit Particle System in iOS 5 Tutorial

参考という名目のパクリ元

CAEmitterLayer and CAEmitterCellアップるぅぅぅの記事ですよね

その他ぽいの


プロパティの説明

CAEmitterCell
birthRate毎秒どれくらいオブジェクトを作るか
lifetimeセルのライフタイム
colortint 色合いを設定
contentsCGImageRef を設定


Layer は emitterShape と emitterPosition を設定するくらいでしょうか

CAEmitterLayer
emitterShapeオブジェクトの作成方法を設定

動かすとこんな感じ


使った適当な画像はこれです


ソース

ファイルのコメント的にはコピペはOKそうだったのですが。
問題ありましたらご指摘ください

2012年1月25日水曜日

続 NSURLConnectionDelegateで証明書(ry..方法

前回の記事が適当すぎたので、少ししっかり調べたーー

参考になると幸いです

結論

SSL周りのリリースノート、仕様書とかきちんとでてますか?

知っている方いたら教えてください

環境

  • iOS 5.0
  • tomcat 7.0.23 / 6.0.32
  • xcode 4.2.1

適当にする方法(改め)

- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
  NSURLProtectionSpace * protectionSpace = [challenge protectionSpace];
  NSURLCredential* credentail = [NSURLCredential credentialForTrust:[protectionSpace serverTrust]];
  [[challenge sender] useCredential:credentail forAuthenticationChallenge:challenge];
}

ハマった事

結論

RSAはOKでDSAはNG

ハマっている世界

iOS 5.0 は 証明書に MD5 を非サポートになったので、

keytool のデフォルト動作だと MD5withRSA なので

自己証明のSSL通信が軒並み エラーになると思っていた

SHA1withRSA とかkeystoreを作り直すと上のコード動いたと勘違いした。

安心したので,MD5の証明書でもやってみたら案の定動作したので、アレ?と思い

DSA で作成したら軒並みエラーなった。

--- 以上 ----

エラーの違い

xcode: Console

SHA1withRAS, MD5withRAS

SHA1withDAS

iPad : Safari : RSA

iPad : Safari : DSA

証明書一部

2012年1月23日月曜日

NSURLConnectionDelegateで証明書周りを適当にする方法

自己証明書だと、通信に失敗するでの軒並みOKにするには下のコードで行ける!!

おすすめはしない!!

※ コマンドラインでしか試してません ※


- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace {
  return YES;
}

- (BOOL)connectionShouldUseCredentialStorage:(NSURLConnection *)connection {
  return YES;
}

- (void) connection:(NSURLConnection *)conn didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
  NSURLProtectionSpace * protectionSpace = [challenge protectionSpace];
  NSURLCredential* credentail = [NSURLCredential credentialForTrust:[protectionSpace serverTrust]];
  [[challenge sender] useCredential:credentail forAuthenticationChallenge:challenge];
}

リンク

参考またはこうすべきサイト

サンプルコード

2011年11月28日月曜日

ARC をソースで!?

前置き

iOSというかllvmでコンパイルするときのARCをソースで管理するときの話です。 この方法はMacでしかできないと思います。

結論

追記1(後で別に書くかも・・・)

[Target] -> [Build Phase] -> [Compile Sources] にてコンパイラフラグを個別に指定してできる。(参考元)

追記2 個人的には混在は嫌いなので、共有ものはライブラリにする方向でその中はARCのON/OFFに依存して統一して書いたのがよいと思う。

ソースで管理するなら、ライブラリを作成してそれを使用するのがいいと思いました。

判断方法

この方法が正攻法かは不明... orz
#if __has_feature(objc_arc)

一応ARCの設定方法

XCode 4.2 の SingleViewApp のとき対応方法

ARC の ON/OFF 対応ようヘッダーファイルを ARCHandle.h を作成

#if __has_feature(objc_arc)
#define AUTORELEASE(A) A
#define ARC_ON
#else
#define AUTORELEASE(A) [A autorelease]
#define ARC_OFF
#endif

AppDelegate.m を変更


// ARC ON の時は基本的に dealloc 書かないので丸ごと削除
#ifdef ARC_OFF
- (void)dealloc
{
    [_window release];
    [_viewController release];
    [super dealloc];
}
#endif


//
// マクロで autorelease を隠蔽したりしなかったり
//
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  self.window = AUTORELEASE([[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] );
    // Override point for customization after application launch.
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
   self.viewController = AUTORELEASE([[GVViewController alloc] initWithNibName:@"GVViewController_iPhone" bundle:nil]);
    } else {
   self.viewController = AUTORELEASE([[GVViewController alloc] initWithNibName:@"GVViewController_iPad" bundle:nil]);
    }
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}

ViewController.m を変更

UILabel に ARC ON/OFFでラベルの内容をかえてます


#if __has_feature(objc_arc)
#define HELLO  @"Hello ARC"
#else
#define HELLO  @"Hello ..."
#endif

ARC ON
ARC OFF

2011年10月26日水曜日

diff android ios (順番はアルファベット順)

現段階での雑感

やっぱりMacはオサレ路線で見せプレイ系で使用して、開発はUbuntu(Linux)がよい

My レベル


android1.6 〜 (2.x系 未開発)〜 3.2 位 開発してみたことあり
iOSiOS 5 sdk 〜 最近やってる

比較


比較してみた表
OSの順序はアルファベット順
項目AndroidiOSWinner備考
Setupsdk解答、環境変数設定 …AppStoreからインストール終了引き分け

iOSはデバイスに開発アプリをインストール辺りで、証明書周りでハマるので惜しいところで引き分け

SDKandroid update だったようなコマンドでおkAppStoreでxcodeを Updateでおk引き分け

iOSはもうちょっとラップしたクラスを提供した方がいいと思う。CoreData周りでそう思った。ContentProviderはどうよって言われると、まぁまぁまぁって感じだけど...

iOSはアップデートの所でappleIDを聞かれるが同じIDでなくてもいけるのわからん

IDEEclipse?xcodeAndroid

基本的にemacs なのでどっちでもいいけど、xcode4系は駄目な気がする

Source & ResourcesJava , XMLObjective-C . XML?Android

xcodeがいろいろ隠蔽しすぎて嫌になります。nibファイルは自分で書くレベルじゃない?

APIまぁJavadocHeaderDoc?Android

もうしけないけど...AppleのClass Referenceは肌に合わない...

OSWin,Ubuntu(linux?), MacMacAndroid

Macって開発しにくくないですか?やっぱUbuntuかな

アプリ.apk.appiOS

作り手次第だけど、同じレベルならiOSじゃね?

2011年10月12日水曜日

Objective-C on Ubuntu 寄り

ここら辺は役に立つ模様の話

Objctive-c
http://developer.apple.com/jp/documentation/cocoa/Conceptual/ObjectiveC/index.html
HeaderDoc
http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/HeaderDoc/intro/intro.html
GuideLine
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CodingGuidelines/CodingGuidelines.html
Style Guide
http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml

コンパイル周りの話

ubuntu では
gcc -lobjc -lgnustep-base -fconstant-string-class=NSConstantString \
      -I /usr/include/GNUstep -o xxxx ...
って感じなのだが mac では
gcc -framework Foundation -o xxxxx ...
となる

Ubuntuではまったところの話

@property を使用するためには、gcc 4.6 以降が必要らしい。(まだ未確認)
apt-get では取得できないので、ソースからビルドになります。
必要になるライブラリ(おそらく configure のオプションで OFFにしておけば必要ない。Offにできるかは未確認)
sudo apt-get install libgmp3-dev libmpfr-dev libmpc-dev
ビルド
gcc-4.6.1/   ソースディレクトリ
build-gcc/   ビルドディレクトリ
ビルドディレクトリにて
../gcc-4.6.1/configure --prefix=your_specified_path \
                               --exec-prefix=your_specified_path
make -j 3
make install