個人的によく使うツール
普段使っているツールを棚卸ししたいなと思い、個人的なメモとして残しておきます
自己紹介
マシン
- 業務: MacBook Pro 15inch
- プライベート: MacBook Air 13inch
デバイス
Macのキーボードが打ちづらくて嫌になってときにHHKB使います US配列が使いたくなったときにAppleのキーボード使います
外部ディスプレイ
ヤフオクで落とした安いやつ
IDE
- AndroidStudio
https://developer.android.com/studio/index.html?hl=ja
これは今の仕事をする上で必須です。個人的にInteliJのIDEは使いやすくて好きです。
https://developer.apple.com/jp/xcode/
プライベートではiOSアプリを開発しているのでxcodeも必須です。
- RubyMine
https://www.jetbrains.com/ruby/
これも無料トライアル期間のときだけRailsでWebアプリケーションを開発していました。
エディタ
エラーメッセージが出た時とかにここにコピーして読んだりしています(Xcodeはログが読みづらいので、、)
自分はVim派です。慣れればめっちゃ使いやすい
ソース管理
よかったらフォローお願いします https://github.com/yshogo
メモ
- wri.pe
増井雄一郎さんが開発したメモアプリ。個人的にこれが一番使い安くて気に入っています
保存しておきたい記事や、メモなどは全てここに同期しています
(最近Evernoteへの不満が溜まってきたのでメモアプリ開発中)
https://getpocket.com/login?e=4
気になった記事はあとで読みたい系の記事はとりあえずここに置いておくようにしています
ターミナル
- iTerm2
Macのデフォルトのものを使ってもいいんですが、こっちの方がウインドウの分割ができて便利なのでこちらを使用しています
タスク管理
- Trello
個人でアプリはこれでタスク管理しています
なにか便利なツールがあれば教えてください
お願いします
Railsチュートリアルを第1章から進めています
Railsチュートリアル日本語翻訳版をはじめています。 https://railstutorial.jp/chapters/rails_flavored_ruby?version=5.0#cha-rails_flavored_ruby
はじめた理由
業務では主にAndroidアプリを開発しています。 そのアプリがDBとやりとりするためのAPIも自分で書いています。
なのでサーバーサイドの基本的な知識はあると思っています。
ですが、Javaでしかかけません。これではJavaが急になくなったときに仕事がなくなるのでRailsを始めました。(嘘)
きっかけ
youtubeでこの動画をみてはじめようと思いました。 https://www.youtube.com/watch?v=c4D2b5vZG2o
Junichi itoさんの記事がRailsを始めた時に一番最初にやったことらしいので真似して見ました。
詳しくは下記に http://blog.jnito.com/entry/2015/04/22/074055
進捗
現在第3章が終わったところです。
所感
内容はRailsだけでなくGitの使い方、herokuの使い方も 説明されていて本当に勉強になります。
Railsでサンプルコードをひたすら書くだけでなく、 テストコードも書きます。
ソースコードはGithubに置いておきます。 https://github.com/yshogo
また、全部終了したら詳しく書きたいと思います。
CoreDataでNSPredicateを使ったらEXC_BAD_ACCESSが出た
ゴールデンウィークいかがおすごしでしょうか 私はだらだらしたり、コード書いたりしてました。(この二つしかしていない)
今日出たエラーを残しておきます。
CoreDataでPredicateを使ったらエラー出た
このエラーが出力されてハマりました、、、、
これってログとか出してくれないの、、、 (ここにログが出力されてるよーとかありましたら教えてください)
解決方法
NSNumberでラップすることです。
CoreDataのカラムの定義をInteeger16に設定したので比較する変数の型をIntにしていたのでそのまま比較できると思っていましたが、 どうやらNSNumberでラップする必要があるようです。
初心者殺しですね、、
Swift愛好会vol18に参加してきました!
Swift愛好会vol18に参加してきました!
https://love-swift.connpass.com/event/51614/
こういう勉強会的なものに参加するの自体が初めてで緊張しましたが、 ひとつの経験として参加してきました。
感想
発表内容としてはレベルが高すぎた、、、、 Swift初心者の自分としては内容についていけませんでした、、、
会場の雰囲気はすごく明るくわいわい楽しい雰囲気でした。(ビールも飲みながらなので)
MacBookProを使用している方が多くかなり羨ましかった、、、 (私はMacbookAir 13-inch, Early 2015 をカスタマイズなしで使用しています。)
内容
談義ということで発表者が前で発表し、聞いている側はTwitterのハッシュタグ「#love_swift」をつけて呟く形式で進めていました。
発表資料
*自社コンテンツ配信 のためのWebView Tips https://speakerdeck.com/gentlesoft/zi-she-kontentupei-xin-falsetamefalsewebview-tips
*Swift4で何が変わりそうなのか(2) https://speakerdeck.com/d_date/swift4dehe-gabian-warufalseka-2
*Assertion https://speakerdeck.com/nhamada/assertion-at-swift
*Swiftと関数型プログラミングの遺産-他人のスライドで発表する- https://speakerdeck.com/bannzai/implementation-for-promise-using-nested-generics
こういうのももっと参加していきたいなー その前に自分のSwift力を上げなければ、、、、、
キーボードでEnterを押すと画面をキーボードが閉じるようにする
Swiftではなにも実装しないとEnterを押してもキーボードが閉じません
そこで以下のように実装します
import UIKit class ViewController: UIViewController , UITextFieldDelegate{ @IBOutlet weak var textField: UITextField! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //デリゲートを設定 textField.delegate = self } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } //このメソッドを書くとキーボードを閉じれるようにnarimasu func textFieldShouldReturn(_ textField: UITextField) -> Bool{ // キーボードを閉じる textField.resignFirstResponder() return true } }
しかしこの方法だと少し問題あり、、、、
UITextFieldを使うたびに毎回以下のメソッドを書くのはめんどくさいですね、、、
//このメソッドを書くとキーボードを閉じれるようにnarimasu func textFieldShouldReturn(_ textField: UITextField) -> Bool{ // キーボードを閉じる textField.resignFirstResponder() return true }
同じことを繰り返させないようにすることに全力を出すのがプログラマーです。 そこで以下のように実装しましょう
自動生成されるViewControllerはお便利メソッドを置いておくクラスとする
ViewController
import UIKit class ViewController: UIViewController , UITextFieldDelegate{ var textFieldDelegate:UIViewController? override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func textFieldShouldReturn(_ textField: UITextField) -> Bool{ // キーボードを閉じる textField.resignFirstResponder() return true } }
これを作成し、Main.storyboardの画面ごとに新しくViewControllerクラスを作成し、先ほど作成したViewControllerに継承?させます
MainViewController
import UIKit //先ほど作成したViewControllerクラスを継承させる class MainViewController: ViewController{ @IBOutlet weak var textField: UITextField! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //アウトレット接続したUITextFieldにデリゲートをセットさせる textField.delegate = self } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
以上です。 これ同じメソッドを何回も書く必要はなくなりました。
私はこのViewControllerクラスに画面遷移するメソッドなどよく使う機能はここに書いて呼び出すようにしています。 ViewControllerが肥大化すると可読性がさがるので、、