Ryusuke Fuda's Tech Blog

Softweare Enginier about Web, iOS, Android.

Vagrant install Mac

VagrantMacへインストール

Vagrant,VirtualBoxをダウンロード
http://www.vagrantup.com/
https://www.virtualbox.org/

Vagrantをインストールをした後、コマンドからバージョン確認

$ vagrant --version
Vagrant 1.6.3

■ OSのイメージをBoxへダウンロード
http://docs.vagrantup.com/v2/getting-started/boxes.html

 vagrant box add hashicorp/precise32
==> box: Loading metadata for box 'hashicorp/precise32'
    box: URL: https://vagrantcloud.com/hashicorp/precise32
==> box: Adding box 'hashicorp/precise32' (v1.0.0) for provider: virtualbox
    box: Downloading: https://vagrantcloud.com/hashicorp/precise32/version/1/provider/virtualbox.box
==> box: Successfully added box 'hashicorp/precise32' (v1.0.0) for 'virtualbox'!

■ Boxの一覧表示

vagrant box list
hashicorp/precise32 (virtualbox, 1.0.0)

■ precise32はUbuntuなので、CentOSのイメージもBoxへダウンロードしておく
http://www.vagrantbox.es/
このサイトにBoxのイメージのURLが載っている。

$ vagrant box add centOS6.4 https://github.com/2creatives/vagrant-centos/releases/download/v6.4.2/centos64-x86_64-20140116.box

■ Boxのイメージの場所

$ ll ~/.vagrant.d/boxes/
total 0
drwxr-xr-x  3 {USERNAME}  staff  102  5 30 15:23 centOS6.4
drwxr-xr-x  4 {USERNAME}  staff  136  5 30 14:14 hashicorp-VAGRANTSLASH-precise32

■ ディレクトリ作ってVagrantからVMを起動

$ mkdir ubuntuOSVM
$ cd ubuntuOSVM
$ vagrant init hashicorp/precise32
$ vagrant up

VirtualBoxを確認
作ったディレクトリ名のOSが実行中となっている

Vagrantで実行中のOSの状態

$ vagrant status

■一時停止したいとき

$ vagrant suspend

■一時停止から再開したいとき

$ vagrant resume

■ 削除したいとき

$ vagrant destroy

vagrant destroyしてもvagrantfileは残るので vagrant up すればまたクリーンなOSが立ち上がる

Ruby install Mac

MacRubyインストール

■ まず、Ruby Version Manager(RVM)をインストールする

$ curl -sSL https://get.rvm.io | bash -s stable
In case of problems: http://rvm.io/help and https://twitter.com/rvm_io

  * WARNING: You have '~/.profile' file, you might want to load it,
    to do that add the following line to '/Users/{USERNAME}/.bash_profile':

      source ~/.profile

ワーニングが出た

$ echo 'source ~/.profile' >> ~/.bash_profile
$ source ~/.bash_profile
$ curl -sSL https://get.rvm.io | bash -s stable

ワーニング消えた。

Rubyインストール

最新バージョン確認してインストール

$ rvm list known ruby
$ sudo rvm install ruby-2.1.1 --default

最新バージョンへ切り替え

$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
$ rvm list

rvm rubies

 * ruby-2.1.1 [ x86_64 ]

# => - current
# =* - current && default
#  * - default
$ rvm  use 2.1.1
Using /Users/{USERNAME}/.rvm/gems/ruby-2.1.1
$ ruby -v
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin12.0]

これでインストール完了

RVM ではなくrbenvでいれる場合

■ rbenvインストール

$ brew install rbenv ruby-build

■ インストールできるバージョン一覧

$ rbenv install -l

■ バージョン指定しインストール

$ rbenv install 2.1.2

■ インストールしたバージョン確認

$ ruby -v


参考)
http://d.hatena.ne.jp/takeR/20140301/1393670527
http://tsuchikazu.net/mac_rail_setup/
http://qiita.com/ongaeshi/items/b07beebca21ba7ed8e7f

Atomのパッケージ削除などapmコマンド

GitHub製エディタAtomのパッケージマネージャーのコマンド
https://atom.io/packages

■ パッケージインストール

$ apm install {パッケージ名}

■ パッケージアンインストール

$ apm uninstall {パッケージ名}

■ インストール済パッケージ一覧表示

$ apm ls

■ パッケージ検索(けっこうざっくりした単語でも出てくる)

$ apm search {単語}
//example
$ apm search vim

■ パッケージの情報取得(GitHubのURLや最新バージョン,ダウンロード数など)

$ apm view {パッケージ名}
$ apm show {パッケージ名}
//example
$ apm view vim-mode
$ apm show vim-mode

※ view と show の違いが分からない…

■ その他
$apm --help でコマンドいっぱい出てくる。

iOS JASidePanelsをstoryboardで実装

nanapiのアンサーなどに使われている、サイドメニューのライブラリJASidePanelsを既存のシステムに追加実装する。

JASidePanels Github
https://github.com/gotosleep/JASidePanels

■ cocoapodsでインストール
Podfile

pod 'JASidePanels'

■ 新しいClassを追加(MySidePanelControllerという名前でやる)
File>New>File>Objective-C Class>
※Subclass of を JASidePanelController にする

■ storyboardで新しいViewControllerを作りCustom Classを"MySidePanelController"にする。
storyboardのRootView(矢印のView)をMySidePanelControllerにする。

■ 左側に出てくるViewをつくる
Storyboardで新しくViewControllerを追加し、SideViewController ClassをつくりCustom Classに設定する。

■ 今あるViewのNavigationControllerにStoryboard IDをつける
TopNavigationController とする。

■ MySidePanelControllerにコードを追加
MySidePanelController.m

-(void) awakeFromNib
{
    //SideViewControllerが左側に出てくるViewのStoryboard ID
    [self setLeftPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"SideViewController"]];
    //TopNavigationControllerが真ん中のViewのStoryboard ID
    [self setCenterPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"TopNavigationController"]];
    //左側のViewの幅も指定できる
    [self setLeftFixedWidth:200];
}

これでビルドすると今までのViewの左上にボタンができて押すとヒュッと左側にSideViewControllerのViewが出る。

iOS Segueを使わずにコードで画面遷移

storyboad上で線を引かずに遷移させる

■ 遷移先のstoryboadのIdentityを設定(Storyboad右側のCustom Classの下)

Storyboad ID: FavoriteViewController
Use Storyboad IDにチェックを入れる

■ 遷移させるViewControllerのヘッダーファイルimport

#import "FavoriteViewController.h"

■ ボタンのActionなどでこれを呼ぶ

FavoriteViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"FavoriteViewController"];
[self presentModalViewController:controller animated:YES]; //モーダルで呼び出す


参考)
http://somtd.hatenablog.com/entry/20120123/1327763634

Mac ターミナル、コマンドでAndroidのAPKインストール

bash_profile へAndroid SDK の platform-toolsへパスを通す

vim ~/.bash_profile
export PATH=/Users/testuser/adt-bundle-mac-x86_64-20131030/sdk/platform-tools/:$PATH
//変更をリロードさせる
source ~/.bash_profile

PATH={Android SDKへのパス}/platform-tools/:$PATH

■ 端末へインストール

adb install test.apk

adb install {APKファイル}
これでAndroidの実機へインストールされる

ios mach-o linker error が大量に出たとき

FBtoken 的なエラーが9個くらい出たとき

■ Parseフレームワークを入れたのが原因らしい

■ 解決策
BuildSettings > Linking > Other Linker Flags の -ObjC を削除

参考)
http://stackoverflow.com/questions/15457136/parse-for-ios-errors-when-trying-to-run-the-app