読者です 読者をやめる 読者になる 読者になる

面白きことは良きことなり

拙く未熟なiOSエンジニアの備忘録と戯言

疲れている人のためのLifehacker

どうにも疲れて、平日のどこかで帰ってきてから仮眠をとらないと生活に支障をきたすことが…。 体力が足りてないのもあるけど、疲れがとれないことも原因かな。 あと睡眠時間が5〜6時間っていうのは、記事見る限り足りてないみたいね。www.lifehacker.jpwww.l…

2017年01月でiOSアプリはhttps通信が必須に

半年後の2017年1月でhttps通信が必須になるそうで。 iOS側の設定自体は大したことない。 どちらかと言えば、サーバ側がTLSv1.2に対応したりしないといけないので大変。 Webが絡むiOSアプリは対応しなければいけない。既存のリリース済みアプリは対応しない場…

guard let で2つ以上の変数をまとめて処理する

Swift2からoptional型をunwrapを保証しつつnilでないことを確認するためにguard let構文が用意されるようになった。 非常に便利なので積極的に使われるけど、括弧やreturnが必要なのでいくつもguard letを使おうとするとかさばるとおもっていた。しかし、実…

Swift2で数字をenumに変換

Swift2でtagを設定したObjectからenumに変換する時に調べたので、備忘録として残す enumType(rawValue: numberType) ざっくり書けばこんなん。 // tagをenumに変換 guard let direction = Direction(rawValue: sender.tag) else { return }

CGFloatを使う時の注意点

Objective-CやSwiftを使ってiOSアプリを開発する時、小数点使用する型は8割CGFloatを使う。 このCGFloatを使う時に Use of undeclared type 'CGFloat': did you mean to use 'CGFloat'? というエラーが出たことがあった。 解決方法は単純に、UIKitをimportす…

presentedとpresentingの違い

たまにpresentedviewcontrollerとpresentingviewcontrollerの違いがわからなくなるのでメモA presentViewController B B presentViewController C となった時、画面手前から奥にかけてC > B > Aの階層になる。この時、Bから見て…、 - presentedviewcontrol…

El Captainでpodsが使えない

El Captainでpodsが使えないとかなんとか。 自分はpods嫌いだし、極力Frameworkも使いたくない人だけど、使わざるを得ないことがあるかもしれないのでリンクだけ貼っておくhanhan's blog - El Capitanでpodが使えなくなったら試すこと

iOS端末のタスクキルは電池を消耗するからしない方がいいとか

iOS端末で電池の消費を気にして、よくタスクを切ることあるけど、実はそれが逆に電池を消耗する結果になるという記事が最近あった。 しかも、Appleも認めてる。でも、タスクが大量にある状態もなんか嫌なんだよなー。 充電できる環境の時だけ、切るようにし…

UIColorの設定で色が正常に表示されなかった現象

ViewControllerのbackgroundColorに色設定しようとしたのに、何故か真っ暗になって困った話 viewWillAppear(_:)でUIColorでCGFloat(0xNN / 0xMM)みたいに指定して色設定しているのに、実際に表示せたら画面が黒一色だった。 print文で吐かせて数値みたら下記…

使いにくいメソッドの再定義

そのままだと使いにくい、使えないので拡張やオーバライドして使ってるメソッド ローカライズの文字列呼び出す時、"commnet"は基本空文字だし、呼び出しが長くなるのはよろしくないのでこんな感じで定義してる func EXLocalizeString(key: String) -> String…

プログラマー向け命名サイト

プログラム書いていると、時たま変数やメソッド名に悩み困ることがある。 大体は英語に翻訳するサイトを使うんだけど、それでも本当にこれでいいのかなーと悩む。そこでとある人にこのサイトを教えて頂いた。割といい感じに命名できる。 codic.jp

Localizeで苦戦した備忘録

知人らと少人数チームでアプリの開発をしているのだけど、英語でしかリリース予定ないとは言え今後を見据えて勉強がてらLocalizeをやろうとしたら嵌った。色々やり方とか調べたり、過去関わったプロジェクトを思い出してこんなファイルがあって…とか試行錯誤…

つまらない仕事でも努力したほうがいいというが

文句言う前に、最高の仕事をしろってことかな。 どちらかといえば、つまらない仕事はモチベーションの維持・持続が課題だな。www.lifehacker.jp

2016/06/08 備忘録

バグの原因がわからないなーと少し嵌ったところ。sizeWithAttributes:の挙動がiOS7と8以降で異なっていた。 正直もうiOS7のサポートも切られるのも普通になりつつあるから、今後出くわすことはないと思うけど、残しておく。前提:NSAttributeString型で文字…

lifehackerの気になった記事まとめ(06/08)

iOSアプリとか構想しているとアプリ単体で完結させるのは難しく、やはりWebサービスとの連携が必須になってくる。 便利そうなサイトが紹介されてたからメモがわりに記載。 サイト APIサービスをまとめて検索してくれるAPI Food www.lifehacker.jpラスタ画像…

Switchのcase網羅とif文のコメントの書き方

今日の備忘録 Switchをenum値で書く場合、defaultを使わない SwiftのSwitchはパターン網羅のため、原則defaultパターンを書かないとエラーになる。 ただ、enumを使う場合であれば、全部のenum値のcaseを書くことでdefaultパターン書かずにすむ。 そうするこ…

MacからWindowsを操作する

家のPCが、Mac miniとWindows10があり、 仕事や開発関係をMacでやり、ゲームやチャット等遊びや趣味をWindwos10を使うようになった。液晶ディスプレイは2台あり、MacでもWindwosでも2画面構成で使えるようにしているが、 入力を切り替えて使うのが少し面倒…

2016/06/03 備忘録

Swift使ってて今更ながら知ったこと。 CGRectがsizeを挟まずにwidthとheightを取ってこれる self.view.frame.size.width が self.view.frame.width になるなんて…なんて楽なんだ。アプリの登録は済ませ、1度も公開していない状態でStoreのURLを知りたいとい…

lifehackerの気になった記事まとめ(06/04)

要点だけ書き出しておく。 新しい視点を持つ、いろんな話題を持てる、話術が磨かれる この3つはでかい www.lifehacker.jp 意見が合わないと時、どういう考え・価値観でそういう結論になったかは気になる。 理解する努力は大事だね。たとえ相手が理解する気…

Static Library(frameworkや.aファイル)が正常に動作しない時に気をつけること

githubからframeworkのプロジェクトをDLしてきて使い方を確認すると、framework等が生成されずプロジェクト毎取り込んでビルドをさせようとするframeworkによく遭遇する。 個人的にプロジェクトを取り込むと自分のプロジェクトとframeworkのプロジェクトのビ…

guard構文の知られていない記述

Swift2.0から導入されたnilチェックとアンラップが同時に行えるguard構文のよくある形は下記書き方だと思う。 guard let fuga = hoge else { return } ただいつも書いてて思うのが、hogeをアンラップするのに新しい変数名を考えなければいけないことが気にな…

2016/05/30 備忘録

クラッシュログをsymbolicateしてメモリのアドレスをアプリのクラスやメソッド名に変換してクラッシュの原因を解析するのは知っていたけど、 クラッシュログがなくても、クラッシュ時のexeptionで吐き出されるCallStackのメモリアドレスだけでもdSYMがあれば…

frameworkの作成や確認で使うコマンド

自分でframeworkを作成することもあれば、githubからDLしてきたframeworkプロジェクトをビルドして生成することもあると思う。そんな時によく使うであろうコマンドを記載する 以下、ターミナルでのコマンド frameworkに含まれるarchitectureを確認する user$…

旧バージョンのアプリのダウンロード

いつからかAppStoreに登録されたアプリは過去のバージョンも残っており、アプリの対象iOSを引き上げた際にサポートを切ったiOSでも旧バージョンであればDLができるようになっている。 support.apple.com ただし、iPhoneやiPadからDL出来るのは購入済みのもの…

SwiftとObjective-Cの相互利用と注意点

今であれば新規プロジェクトはSwiftで作られるだろうし、既存プロジェクトであればObjectie-Cで作られており、メンテナンスもObjective-Cで行われるのが大半だと思う。たまにあるであろう、SwiftとObjective-Cの共存するプロジェクトで相互利用するための方…

RGBとCMYK

RGBはプログラム書いている時でもそれなりに出てくるので、馴染みはあるからわかる。 一方でいつの間にかプリンターとかでも主流になり使われるようになったCMYKは、 何の色も略称かは知っていても、いまいちどういう時にどう扱っていいかわからない。この記…

電子ペーパーのフルカラー化

本は専ら紙は極力買わず、電子書籍で買うようにしています。愛用している電子書籍サイトは紀伊国屋書店の「Kinoppy」(キノッピー)。 本棚に買った書籍が並べられ、見やすく整頓しやすいことからずっとKinoppyを使ってた。でも専門書に弱く、そのあたりはAmaz…

脳の学習システムについて

学生の時、良い成績を取るために行ってた方法で下記なことを主にやっていた。 そのおかげか、最高で学年3位とか300人いるなかで常に2桁の順位中盤あたりを取ることができていた。 ガムを噛みながら勉強する -> ガムを噛んでいる時、リラックス状態になりα…

2016/05/18 備忘録

カメラで使うImagePickerでクラッシュするという報告が上がっていた。 どうも原因を調べると、ピンチアウトやピンチインでズーム等をした際に表示されるzoom sliderが出ている時に、 カメラ画面を閉じるとクラッシュすることがあるらしい。閉じる処理を遅ら…

深呼吸って大事ね

自分で出来る人間と思っている人ほど、マルチタスクに物事をこなせると思ってるけど、そうでないのが現実。 特に男性はマルチタスクに向かない脳の作りをしているとかで、マルチタスクしないほうが効率良いんだとか。自分も気づいたら、思い出すたびにあれに…

創造力を枯らさないために

創造力を枯らさないために、週1回誰にも見せない自分ためだけに生み出す時間を確保するのがいいそうだ。 習慣化できるようになるといいんだが…こころに留めておこう。www.lifehacker.jp

睡眠に関する10の間違い

睡眠といえば3大欲求のうちの1つだし、欠くことのできないもの。 疲れを取るのも睡眠だし、大事だからこそ間違った睡眠で疲労は避けたいと思う。 以下は、全部間違った内容 睡眠時間は長いほど良い アルコールや薬物を飲むと良く眠れる 真夜中に目が覚めた…

社会に出て理解したことの1つはコネは強い

学生の頃とか綺麗事で、コネなんて使うやつはろくでもないやつだと思っていた。 いや、今でもできるならコネなんて使わないにこしたことはないとも思うところはある。でも、社会に出て何より思うのは、コネの大事さ。 結局見ず知らずに人を相手にするよりは…

ロシアのお菓子「ゼフィール」が気になる

ガルパンはいいぞぉ〜。ガルパンの劇場版を、通常、爆音、4DX、爆音と4回見に行くくらいにはまった。 そんな折、ドラマCDとか聞いてないなーとふと聞いてみたら、冷泉麻子がプラウダ高校に交流に行った際、 「ゼフィール」というお菓子があるという話があっ…

Appleの審査時間を短縮するための手法

Appleの申請は以前なら1週間が目安だったが、現在は2日程度に短縮された。 それでも少しでも申請時間を短縮するためのテクニックを記す。 Appleの申請で新規アプリの申請が1番時間がかかる 審査の内容等はAppleのブラックボックスなので、不確かだが新規アプ…

WebInspectorの使用できる条件と手順

意外と知らない人がいるのか、Safari上で動いているものしかWebInspectorが使えないと思ってる人がいる模様。 UIWebViewやWKWebViewを使用しているアプリでもWebInspectorが使えるので、条件や手順を記しておく。 操作手順は脳内で思い出しながら書いている…

Swiftのライブラリサイト「Swift Modules」

仕事では、いまだそんなに触れる機会が訪れないだよなーSwiftは。 あと個人的にライブラリって継続してサポートする保証がないから個人的にはあまり好きじゃない。アプリを作っておしまい!サポートは新iOSとかしないよ!みたいな作りっぱなしであれば その…

指摘を受けた内容まとめ

1. init系、deallocでは"self"を使わず"_"でアクセスする 理由:selfでアクセスした際にKVOの監視対象の場合、初期化の時にも値の変化を検知するため プロパティとインスタンス変数(ivar) — ios-practice 0.1 documentation iphone - iOS, using underscore …

SourceTreeで複数アカウントを使用する場合

最近になってSourceTreeを使ってリポジトリ管理を行うようになった。一方でネット上の名前でやっているGithubと実名のGithubを持っているため、 両方をSourceTreeで管理しようとすると一方が "error : The requested URL returned error : 403" と出てPush出…

NSArrayの書き方で変わる動作

地味に引っかかった初歩的部分。 Objective-Cでモダンな書き方をする場合、下記のことに気をつける必要がある。 NSString *a = @”objectA”; NSString *b = @”objectB”; NSString *c = nil; // case1 NSArray *array1 = [a, b, c]; // -> NSArrayにnilは入れ…

明示的にアプリのタスクを切った時のsilent pushの振る舞い

iOSのSilent Pushは、どんな状況でも使えるわけではないと聞いたので その内容を記載しておく。 ユーザが明示的にアプリのタスクを切った時、silent pushは動作しなくなるとのこと。 そのため、それを考慮した作りにする必要があるらしい。

gitにおけるcommitとpushの違い

git

今までsvnばかり触っていて、gitはさっぱりだったので、commitとpushの違いがわからなかった。 svnでは、commitはローカルリポジトリからリモートリポジトリへの反映で使われる。gitでは、commitはローカルリポジトリの変更をローカルリポジトリへ確定反映さ…

ゲーム開発のリンク集

少なからず、ゲーム開発に興味あってUnityとか触ってたり勉強しているので、 参考になりそうな記事のまとめ

Windows10をインストールしたら行うべきこと

Windows10は隙あらば情報を集めてMSに送信しようとする。 そういう動作をカットするためにやるべきことがまとめられているサイトが下記 歌うキツネ : Windows 10のトラッキング/テレメトリを無効化する各種ツール

lifehackerの気になったApple系記事まとめ

lifehackerの気になった仕事系記事まとめ

lifehackerの気になった生活記事まとめ

Launch Screen.storyboardで画像が表示されなくなる問題

Launch Screen.storyboardにimageViewを乗せて画像名を直指定するとタイミングは不明だけど急に画像が表示されなくなることがある。しかも高頻度で。 ネットで見ると同様に遭遇した人の解決策は画像のファイル名をリネームして、storyboard上で再指定する。 …

+ UIPasteboard removepasteboardwithname:の振る舞い

+ UIPasteboard removepasteboardwithname: removeと付いているから除外、削除するように見えるが、 実際は、その名前のペーストボードを無効化する。 OS判断でリソース解放されるまでは同名のペーストボードのアクセスは不可能になるため、うかつにRemoveは…

iOSのメモリ解放方法

電源ボタン長押しして電源オフのスイッチを表示後、Homeボタン長押し。 実際にやってみるとバックグラウンドにあるアプリが、Launchから起動しているからかメモリ解放されているのは、本当のよう。