@niwakk7 Web開発メモ

元々iPhoneアプリ開発のブログだったのですが、開発を休止しているためWeb関連の技術メモを残していきます。

React環境をサクッと構築できる、create-react-appコマンド

※Node.js6.0以上がインストールされている必要があります。 まずは、create-react-appコマンドをインストールします。 npm install -g create-react-app 任意のフォルダへ移動します。 create-react-app my-app cd my-app npm start または yarn start を実…

UITabBarControllerの実装

プログラムで実装するときの書き方。まずは、AppDelegate.swift @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { internal var window: UIWindow? private var myTabBarController: UITabBarController! func application(appl…

Storyboardを拡大縮小をする。

Storyboard上のダブルクリックで拡大縮小をいったりきたりできる。 倍率は以下で設定。

StoryBoard上のViewControllerからNavigationController、TabBarControllerを挿入する。

StoryBoard上で挿入先のViewControllerを選択し、メニューバーのEditorからNavigationControllerかTabBarControllerを選択する。そんな方法があったのか。

UILabelを使って円を描く。

UILabelを使って円を描く方法。 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() var width:CGFloat = 150 var height:CGFloat = 150 //radiusを一辺の半分にする var radius = width / 2 let ci…

目一杯円を描くView

drawCircleViewというカスタムクラスをつくり、ViewControllerで描画する。ViewController側 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() var myDrawView: UIView! myDrawView = drawCircleV…

PlaygroundでUIViewを表示する。

やっとSwiftで開発することになったので、これからコツコツ勉強を開始する。 まずは、UIViewをPlayground上で表示してみる。 var view = UIView() view.frame.size view.frame.origin view.frame.size.width = 100 view.frame.size.height = 100 view.frame …

【Swift基礎】変数宣言、代入

変数は、普通の変数と定数を分ける必要がある。 var->変数 let->定数(これは別記事で) //変数宣言 var msg: String //代入 msg = "hello world" //宣言+代入 var msg: String = "hello world" //または、 var msg = "hello world"

【Swift基礎】print文、ログ出力

//改行なし print("hello world") //改行付き println("hello world")

Xcodeでエラーが出てないのにビルドに失敗(Build Failed)する。

エラーが全然でてないのに、ビルド失敗してどこを直していいかわからない!Xcode 4: Build Failed, No Issues ios - Xcode 4: Build Failed, No Issues - Stack Overflow一番よくあるのは、Bundle identifierとかPRODUCT NAMEにアンダースコアが入っているか…

UIAlertControllerでアラートやテキスト入力モーダル画面を出す。

iOS8からUIAlertViewが非推奨になり、UIAlertControllerという新しいクラスを使う必要が出た。簡単に使い方をまとめた。 ボタン二つの通常のAlertView UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Title" message:@"message"…

NSSortDescriptorを使って、日付でソートする

以下のような構造のデータの配列を、NSSortDescriptorを使ってソートする。 @interface ListData : NSObject <NSCoding> @property (nonatomic, readonly) NSString *identifier; @property (nonatomic, retain) NSString *memo; @property (nonatomic, retain) NSDate</nscoding>…

NSUserDefaultsにNSMutableArrayの配列をsetObjectしようとすると、固まる。

不正アクセスとかで落ちるわけではなく、ほんとうにパタッと固まってしまう。iOS7まではできたのが、とたんに動かなくなった。どうやら、NSMutableArrayだとだめらしい。宣言をみると、 - (void)setObject:(id)value forKey:(NSString *)defaultName; なんだ…

アプリをシンプルにつくったほうがいい、技術的な7個の理由。

アプリをシンプルに作ったほうがよい理由は、ほとんど語り尽くされている。だが、技術的な理由はあまり語られていないかも。ということで、その技術的な視点からの、アプリをシンプルに作ったほうがいい理由をいくつか考えてみた。 開発工数が減る。 これは…

Lipo Error: can't open input file *** というエラーでビルドが通らない。

さまざまな解決策が議論されているみたい。xcode - Lipo Error: can't open input file - Stack Overflowただ、自分の場合は少しちがったみたい。 以下の方法で解決した。 Google AnalyticsのSDKを参照から削除。 右クリックからDelete、Remove from referen…

TextField押下でPickerViewを下から出す。

画面下部から、ピッカーをにゅって出すのはとてもUIなんだが、実装するのに少し工夫しなければいけない。ちなみに以前は、UIActionSheetの上にのせるという方法をとっていた。しかし、iOS8でUIActionSheetやUIAlertViewが大きく変わるため、動かなくなる。そ…

NSLocalizedStringで、設定している日本語が表示されない。

ローカライズしたはずの日本語が出ない事象が発生!Localizable.string (English)にて、 "Close" = "Close";Localizable.string (Japanese)にて、 "Close" = "閉じる";NSLocalizedString (@"Close", nil); んー、うまく表示されない。cleanもして、Xcode立ち…

UITableViewのindexPathからセルを取得する。

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

The Simulator can't be launched because it is already in use.でSimulatorが立ち上がらない。

Simulatorを立ち上げていないのに、The Simulator can't be launched because it is already in use.と、すでに立ち上がっていることになってしまう場合の対処法。Xcodeを一旦終了させる。

UITabBarItemのtitleが表示されない!

これはよくある現象らしい。http://stackoverflow.com/questions/5573966/uitabbaritem-title-not-displayedちなみに僕は、以下のように修正してなおりました。修正前: UITabBarController *tabBarController = [[UITabBarController alloc] init]; UITabBar…

cocoaPodsインストール覚え書き

ちょっと雑な覚え書きで申し訳ないが、まぁ、メモ程度に... 1. プロジェクトファイルと同じディレクトリに移動。 2. RubyGemsを最新状態に更新 $sudo gem update --system 3. Command Line Toolsをインストール。 Xcode->Preferences->Downloads->Components…

UIAlertViewにUITextFieldをのせる。

このようなUIを作るときの覚え書き。 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"タイトル" message:@"メッセージ" delegate:self cancelButtonTitle:@"キャンセル" otherButtonTitles:@"OK", nil]; alert.delegate = self; alert.alertVie…

さまざまな会社のObjective-cコーディング規約まとめ

公開されているコーディング規約をいくつかまとめてみました。Apple https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/CodingGuidelines.htmlCookPad(日本語) https://github.com/cookpad/styleguide/blob/master/…

macのスクリーンショット保存先を変える。

システム環境設定から変更することはできないようですが、ターミナルから簡単にできます。 Pictures配下にscreenshotsというフォルダを作って、そこに設定する場合は以下です。 defaults write com.apple.screencapture location /Users/(ユーザ名)/Pictures…

定数はstaticで宣言する。

#defineはマクロでない限りはstaticで宣言する。 NYTimesのコーディング規約より。 static NSString * const TSCompanyName = @"Niwakk7.inc"; static const CGFloat TSTableHeight = 50.0; ただ、const型は頭にkをつけるのも、一つの一般的な作法であったり…

現在設定されている地域の現在時間を取得する。

//現在値取得 NSLocale *currentLocale = [NSLocale currentLocale]; NSString *text = [NSString stringWithFormat:@"%@", [[NSDate date] descriptionWithLocale:currentLocale]]];

UIButtonのテキストの位置を変える。

UIButtonのテキストの位置を変える方法。 setTitleEdgeInsetsというメソッドで位置を設定する。こういう感じ(左)のUIButtonを、 こういう(右)感じにしたいとき。 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.frame = CGRectMake(80,…

applicationIconBadgeNumberでつけたbadgeがアプリを削除しても消えない。

現象がおこった経緯。1. バッジをつけるアプリを作成。 2. やっぱりいらないと思って、処理を削除。 3. アプリを起動。 4. バッジが残り続ける。 5. 何回やってもだめ。 6. (´Д`。)けっきょく、いったん処理を切り戻し、badgeを0に設定してアプリを起動する…

UIActionSheetのキャンセルボタンが効かない

UIActionSheetの一番下のボタンに"キャンセル"を配置したのにきかない。 今までこんな事なかったので、はまりまくった。どうやらtoolbarがあると、この現象が起こるらしい。 UIActionSheet *actionSheet = [[UIActionSheet alloc] init]; actionSheet.delega…

viで文末、文頭に移動するコマンド

文頭 0 文末 $ほんと、慣れないと覚えづらいが、ひとまず文頭だから0に移動!!くらいに覚えておけばいいか。 じゃぁ、$は?金($)は最後についてくる!! とか言ってるうちに覚えるだろう。