ブログをWordpressに変えました。
アクセスしていただいてありがとうございます。はてなダイアリーからWordpressブログに移動しました。
お手数おかけしますが、こちらから新ブログを御覧ください。
スマートフォンアプリ制作なら株式会社ガラパゴス | iPhoneアプリ制作/iPadアプリ制作/Androidアプリ制作
アプリ制作実習〜データベースの編集〜
こんにちは。
作ったデータベースの中身を見る方法を学んだので報告します。
まず、ターミナルを開いて、
1.adbと入力
するとandroid debug bridgeが立ち上がります。(そんなコマンド無い!って怒られる人はPATHが通っていないのでPATHを通してください➡参考サイト:http://gadgemin.blog84.fc2.com/blog-entry-15.html)
2.adb shellと入力
すると
adb server is out of date. killing... * daemon started successfully * #
と、こんな感じにdaemonというのが立ち上がります。
これでエミュレータに保存されたファイルやデータベースへアクセスできます。
3.データベースのパスへGO
プロジェクトのデータベースは/data/data/(プロジェクト名)/databases
にあります。このdatabasesの中には見覚えのある「Images」の文字が。
どうやらデータベースの作成は出来ているようです。
4.データベースの操作
# splite3 Images
と入力するとSQLiteのコマンドでデータベースが操作できます。
テーブルの全セルを表示させてみました。
sqlite> select * from images; 1|| super|| 2||tttt || 3|||| 4|||?PNG | 5||iiii || 6||iiii |?PNG | 7||ssssssss || 8||ssssssss |?PNG | 9||?????|| 10||?????|?PNG |
という訳で、入力した写真のタイトルと何らかの画像が入っていました!!
また、普段は実機で検証しているのですが、実機のdataファイルは暗号化されているため、
今回はエミュレーターを使わざるをえませんでした。エミュレーター遅っ!!!!
アプリ制作実習〜アダプター〜
こんばんは!本日はアダプターについて書きます。
アダプターというのは、レイアウトとビューの間にかませて
両者の接着剤になるというものです。
同じようなビューを連続で表示したいときに使うのですが
直接乗せるのではだめなのかというと、
このアダプター接着剤の他にポジション情報も持っていて
例えばスクロールして表示位置が変わっても再描画の必要がなければ
リサイクル、というオプションがついているのです。
直接乗せた場合、毎回描画することになるためメモリーに非常に優しくないです。
Adapter便利ですねー✨
以下、毎度恥ずかしながらソースです。
public class ImageAdapter extends BaseAdapter{ Context context; public OldU(Context context) { super(); this.context = context; } @Override public int getCount() { return Images.length; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null){ imageView = new ImageView(context); imageView.setImageResource(R.layout.listitem); }else{ imageView = (ImageView) convertView; } imageView.setImageResource(images[position]); return imageView; } private Integer[] images = { R.drawable.image, R.drawable.image, R.drawable.image, R.drawable.image, R.drawable.image, R.drawable.image, R.drawable.image, R.drawable.image }; }
本当は、データベースを実装するためそれに適した
CursorAdapterというAdapterを実装したかったのですが、
制作したデータベースがめちゃくちゃだったために
代用のBaseAdapterを乗せてます。
締め切りがー💦💦
@dynamicを自前で実装する
こんにちは ビンゴ中西です。
Objective-Cのメタプログラミングを勉強中です。
Cora Dataを使っていると出てくる @dynamicこれは、
setterとgetterをどうやら実行時に作成するときに使われるみたい。
つまり、@dynamicはメタプログラミングでsetterとgetter作るよってことを示しているんですね。
やってみよう
Hoge.h
@property (nonatomic, retain) NSString *hoge;
Hoge.m
static Hoge* hogeSingle = nil; - (id)init { self = [super init]; if (self) { void (^setBlock)(id o, NSString *s) = ^(id o, NSString *s){ NSLog(@">>> %@",s); }; NSString *(^getBlock)(id o) = ^(id o){ NSLog(@"%@", o); return @"Test"; }; SEL setSel = NSSelectorFromString(@"setHoge:"); SEL getSel = NSSelectorFromString(@"hoge"); IMP setImp = imp_implementationWithBlock(setBlock); IMP getImp = imp_implementationWithBlock(getBlock); class_addMethod([Hoge class], setSel, setImp, "v@:@"); class_addMethod([Hoge class], getSel, getImp, "v@:"); } return self; } // シングルトン +(Hoge*)sharedManager{ @synchronized(self) { if (hogeSingle == nil) { hogeSingle = [[self alloc] init]; } } return hogeSingle; }
imp_implementationWithBlockの第1引数には呼び出しもとのインスタンスが入るみたいです。
Perlでのオブジェクト指向と一緒ですね。Perlも関数でオブジェクト指向をするために、第1引数に呼び出したインスタンスをもらってますし。
使い方
[[Hoge sharedManager] setHoge:@"AA"]; // sharedManagerでシングルトンをゲットしています。 NSLog(@"%@", [Hoge sharedManager].hoge);
結果:
>>> AA Test
それっぽく動いています。
私の .gitconfig
ビンゴ中西です。 gitを使い始めているので.gitconfigも書きました。
diffがlessで表示されるのが嫌だったので、pagerの指定をなくしています。
[user] name = ひみつ email = ひみつ [core] quotepath = false excludesfile = /Users/ユーザ名/.gitignore pager = editor = /usr/bin/vim [color] ui = true [color "diff"] meta = white reverse frag = magenta bold old = green new = green whitespace = white reverse [color "status"] added = yellow changed = green untracked = cyan reverse branch = magenta [alias] ci = commit
私の.zshrc
ビンゴ中西です。
zshを使いだしたので、.zshrcを書きました。
################################################################ # デフォルトの補完機能を有効にする ################################################################ autoload -U compinit compinit -u ################################################################ # 環境変数 ################################################################ export LANG=ja_JP.UTF-8 ################################################################ # プロンプト ################################################################ PROMPT="%n@%~%# " ################################################################ # alias ################################################################ alias ll="ls -l" alias di="dirs | tr ' ' '\n'" ################################################################ # ディレクトリ移動 ################################################################ setopt auto_cd #ディレクトリ名だけで移動する setopt auto_pushd #自動でディレクトリをpushする ################################################################ # 補完 ################################################################ setopt noautoremoveslash #末尾の/を自動的に消さない setopt nolistbeep #ビープ音をならさない setopt list_packed #リスト表示をつめて表示 setopt correct #存在しないコマンドのとき近いコマンドを表示 setopt complete_aliases #エイリアスも補完 ################################################################ # Emacsバインド ################################################################ bindkey -e autoload history-search-end zle -N history-beginning-search-backward-end history-search-end zle -N history-beginning-search-forward-end history-search-end bindkey "^p" history-beginning-search-backward-end bindkey "^n" history-beginning-search-forward-end bindkey "\\ep" history-beginning-search-backward-end bindkey "\\en" history-beginning-search-forward-end bindkey "^[[Z" reverse-menu-complete # Shift-Tabで補完候補を逆順する ################################################################ # history ################################################################ HISTFILE=~/.zsh_history HISTSIZE=10000 SAVEHIST=10000 function history-all { history -E 1 } # 全履歴の一覧を出力する setopt hist_ignore_dups # ダブった履歴を無視する setopt share_history # ヒストリを共有する
アプリ制作実習〜アプリアイコン〜
こんばんは!haneoです。
今日はデザイナーさんにお願いしていたアプリのアイコンが出来上がった
(デザイナーさんありがとうございます!!)
ので、アイコンを変更してみました。
方法は簡単、res/drawable-?dpi
Manifestファイルの
android:icon="@drawable/~~~~"
の部分がこのアプリのアイコンはこの画像ですよと指定しているので、
~~~~に画像ファイル名を入れます。
また、アイコンとなる画像は以下のサイズに決まっています
ldpi=36×36px
mdpi=48×48px
hdpi=72×72px
xhdpi=96×96px
しかし、今までの変な緑のロボットのアイコン使ってた時とはやる気全然変わってきますね。
ちゃんとしたもの作らなきゃなー