ZenCodingをもう少し使いやすくしたEmmetってのがあるようです。
知らない人は遅れてる?新Zen-Coding Emmetを参考にインストールしてみました、、、が
ショートカットがききませんorz
何かやり方間違ってるのか?わかりませんが、とりあえずメモ
----2013/01/07 ZenCodingとEmmetの共存は通常できない模様。 よって、Emmetを利用する時は、ZenCodingのパッケージをremoveします。
コマンドパレット(Command + Shift + P)で ZenCodingをインストール
Emmetは今のところリポジトリにないので、コマンドパレットでadd repository
Window下にURL入力ボックスが表示されたらURLを追加
https://github.com/sergeche/emmet-sublime
あとは、コマンドパレットで emmet-sublime.pngをインストール
div#test1.test1+(div#test2>(div#test3+div#test4))+div#test5
div#test1.test1+div#test2>div#test3+div#test4^div#test5
開発環境と実機がiOS6になってしまったため、iOS5で試せる機会が減ってしまった。
現在開発中のアプリでiOS5の実機で落ちてしまう現象があった。
Could not instantiate class named NSLayoutConstraint
どうやら、「AutoLayout」を利用していると iOS5でエラーになる。
理由は定かではないけど、iPhone5対応には「AutoLayout」を無効にするのは個人的に鉄則の気がします。 ちなみに、Xibを手動で作成した時に「AutoLayout」にデフォルトでチェック(?)されてしまっていたようで、気がつきませんでした。
viモードでSublime Textの一括置換を利用する場合、混乱してしまうのでメモ
(1) viの入力モードにする (2) 置換したいワードに移動し、Ctrl + D (3) もう一度 Ctrl + D する (4) 文字を編集する
久々にAndroid x Eclipseを使って、アップデートしたらコード補完ができなくなりました。
ネットで調べて、新規インストールしたEclipseでコード補完候補が出なくなってしまった場合の対処法 を参考にしました。
結論を言うと
・.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs を開く ・content_assist_disabled_computersを無効にする
人によっては、OSXのショートカットとバッティングしてしまうので、ショートカットを変更します。
環境設定... > General > Keys を開き、Content Assist にショートカットを割り当てます。
ここを参考にメモ
- true
- true
フルスクリーンにして消します。
- @null
[java] public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.game); } [/java]
[java] public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.game); } [/java]
レイアウト系なので何となく設定で消したいですが、条件に合わせて表示する事があればプログラムですかね? ただ、プログラムで消した方が作業は早いか(?!)
GDでPNG画像を合成する際、元画像のアルファが影響してにじんでしまうことがある。 特に意図してアルファチャンネルを利用しない場合は、truecolorで合成したほうがいいかも。
(1) imageCreateTrueColor() で画像を作成 (2) imagecolorallocate() でカラー作成 (3) imagefill() で背景塗りつぶし
<
pre class="language-php"><?php
$paths[] = './images/sample_hource.png';
$paths[] = './images/sample_sheep.png';
$paths[] = './images/sample_dog.png';
$gd_image = new GDImage(); $gd_image->drawImage($paths);
class GDImage { public $image_widths = []; public $image_width = 0; public $image_height = 0; public $r_color = 255; public $g_color = 255; public $b_color = 255;
/**
* draw image
*
* @param array $paths
* @return void
*/
function drawImage($paths) {
if (!$paths) return;
foreach ($paths as $path) {
$images[] = $this->fetchImage($path);
}
$this->image_width = max($this->image_widths);
$this->createImage();
foreach ($images as $image) {
$this->addImage($image);
}
$this->drawPng();
}
/**
* create image
*
* @return void
*/
function createImage() {
$this->image_x = 0;
$this->image_y = 0;
$this->marge_image = imageCreateTrueColor($this->image_width, $this->image_height);
if (!$this->marge_image) exit('image create error!');
$white = imagecolorallocate($this->marge_image, $this->r_color, $this->g_color, $this->b_color);
imagefill($this->marge_image, 0, 0, $white);
}
/**
* draw png
*
* @return void
*/
function drawPng() {
header("Content-type: image/png");
ImagePng($this->marge_image);
ImageDestroy($this->marge_image);
exit;
}
/**
* add image
*
* @param array $values
* @return void
*/
function addImage($values) {
ImageCopy($this->marge_image, $values['image'], $this->image_x, $this->image_y, 0, 0, $values['width'], $values['height']);
ImageDestroy($values['image']);
$this->image_y+= $values['height'];
}
/**
* fetch image
*
* @param string $path
* @return array
*/
function fetchImage($path) {
$values['image'] = ImageCreateFromPng($path);
if ($values['image']) {
$values['width'] = ImageSX($values['image']);
$values['height'] = ImageSY($values['image']);
$this->image_widths[] = $values['width'];
$this->image_height+= $values['height'];
}
return $values;
}
}
iPhone5発売記念としてAppBankNetworkがキャンペーンをしていたので、これを機に会社で登録してみる。
【特典】先着100デベロッパー様に1万円プレゼント 【全員特典】AppBankの特集記事「秋の無料アプリ特集(仮タイトル)」に参加 【特別特典】先着100名の中から抽選で5名様にAppBankの広告枠1000クリック分プレゼント
AppBankには、なかなかレビューしてもらえないのが理由です(汗)
AppBankNetworkのアプリ広告は、Nendと協力してやっているそうです。
AppBankNetworkは、iAdやAdMobのようにアプリに広告をしこんで収入を得るプログラムです。 AppBankは、iOSの中では現状最大手のレビューサイトでしょう。 そこで、AppBankNetworkを利用すればその特典をいかしつつサービスを利用できるので、日本国内向けのアプリに最適かと思います。
※この段階では、SDKはダウンロードできないので利用できません
ここで申請が受理されると、アプリ広告の設定にはいります
Nendのサービスで、アプリ広告の登録をします。 広告枠の設定が終了すると、アプリのキー発行とともにSDKがダウンロードが可能となります。
ダウンロードしたSDKを、アプリに仕込みます。 ※詳細はNendから公開されるマニュアルを参照
とりあえず動作しているかは、テスト広告で確認も可能です。
iAd、AdMobとのハイブリッドは、最初不安なのでやめました。 誤作動でAppBank側で確認できないとまたITCに再申請しないといけないのが理由です。 うまく動作したら、アップデートでハイブリッド対応という形で。
アプリ広告枠を登録して、暫くすると広告枠の承認のメールがきます。 これで、実際の広告収入機能が有効になります。 AppStoreでアプリがリリースされるか待ちましょう。
キャンペーンがある場合は、アプリリリース後に申請が必要です。 ※キャンペーンの申請・承認に関しては、各キャンペーンの基準によります。
と言う事で、しばらくAppBankNetworkの広告効果がどんなもんか調査していきます。
iPhone5になって一番厄介なのが、解像度の変更でしょうか? なにせアスペクト比が変わってしまいましたから・・・
iPhone4 Retina: 640 x 960 iPhone5 Retina: 640 x 1136
最初は、機種判別とかviewの画面サイズを取得してレイアウトを考えてましたが、実はInterfaceBuilderだけでほとんどの事が解決できるかと思います。 実際はステータスバーを利用する事が多いと思うので、ステータスバーの高さ分のレイアウトを考慮する必要があります。
まずはInterfaceBuilderでviewを Simulated Metrics > Retina4 Full Screen に設定するとiPhone5の解像度(640 x 1136)でレイアウトできます。 というか、こうしないとiPhone5で表示されないと思います(上下黒枠)。
Retina4 Full Screenのレイアウトにしたら、今まで個人的にあまり気にしていなかった「AutoSizing」の利用です。 ちなみに、AutoLayoutにすると色々崩れるので利用しない方がいいような気がしました。
「AutoSizing」は、viewのサイズが変更された時にその中のUIがどういう位置取りをするか設定するものです。 iPhone5で基本レイアウトしておき、各UIパーツ毎に「AutoSizing」を設定します。
レイアウトそのままで表示
「AutoSizing」の設定によりUIが自動で位置調整して表示
2012/09/13現在、Xcode4.5(GM)でadMobのコンパイラが通りませんでした。 ※現在は、Google AdMob Ads SDK のiOS 6対応版がでています Google AdMob Ads SDK
ld: file is universal (3 slices) but does not contain a(n) armv7s slice:
どうやらXcode4.5(GM)で、Buildの Architecturesが、armv7s が追加されて$(ARCHS_STANDARD_32_BIT) に変更になってるので、とりあえずここを参考にの対処策を。
プロジェクトの Target を選択して Architectures > Other... を開く
$(ARCHS_STANDARD_32_BIT) を削除して、armv7 を追加
これで、コンパイルできるはず。 armv7s はiPhone5に最適化されたアーキテクチャかと思います。 そのうちadMobから armv7s対応バージョンが出ると思うので、それを待った方が安心かも知れません。