hiragram no blog

iOSとか

iOSDC2017参加した

トークの内容などは他の方がたくさん書いてるのでそういうのは割愛して感想だけ。 前回のiOSDCに参加したときはただトークを聞いてふんふんして終わったから帰るか〜という感じで当時はそれで満足していたけど、今年はTwitterで繋がってた人と初めて挨拶でき…

Pairsのクラッシュバグをみつけたお

pairs-2017-09-16 項目 情報 アプリバージョン 5.26.0 iOSバージョン 10.3.2 端末 iPhone 6s 操作 ユーザー詳細画面で、上方向に素早くスワイプしたあと、写真の上に表示されている右方向のインジケータをタップする 次のユーザーに切り替わるが、スクロール…

iOSアプリのバックエンドにFirebase使ってみた感想

習作としてレシピのマスターデータがあってそれを作ったよというレポートをアプリから投稿できるようなやつを作ってみて感じたこと。 とりあえず動かすのが超簡単 コンソールからプロジェクトつくってキー発行してSDK入れて初期化すればDBにアクセスできて簡…

行動指針

SwiftでiOSアプリを作るにあたっての自分の行動指針をまとめて公開してみた。 というのも、最近転職したり個人でアプリ作ったり友人とのプロジェクトが動き出しそうになったりしており、複数のコーディング規約にまたがってコードを書くことになりそうで(仕…

退職します!

3年2ヶ月在籍したSpeeeを退職します。今日が最終日です。 なにしてたの? 元々サーバーサイドのエンジニアとして新卒入社してPHPやっていて、自社サービスのiOSアプリ用のAPIを作ってました。そのうちアプリ側のちょっとしたデバッグとか修正をXcodeでやるよ…

AutoLayoutのエラーを紐解くときにやっていること

以前ふとこんなツイートをしたところ意外とLikeされた。 AutoLayoutのエラーがコンソールに出た時意味不明だけどviewのaccesibilityIdentifierとconstraintのidentifierに任意の文字列入れておくとメモリアドレスの部分がそれに置き換わるのでおすすめ— ひら…

Mastodon用のiOSクライアントアプリを作っている

Mastodon、どうせ1ヶ月で飽きるっしょという思いがあったのでユーザーとしては全然使っていなかったが、流行りモノのサービスでアプリ開発競争みたいになってるのには参加してみたいという思いがあったので作っている。 開発に使っているアカウントはPawooに…

自分用 けっこう体調崩したとき用

コカ・コーラ アクエリアス 1.0L×12本出版社/メーカー: コカ・コーラ発売日: 2012/04/03メディア: 食品&飲料この商品を含むブログを見る ウイダーinゼリー エネルギー マスカット味 180g×6個出版社/メーカー: 森永製菓メディア: ヘルスケア&ケア用品この商品…

Segueを使わずにかっこよく画面遷移する方法を考えた

最近Segueをいかに安全に使って画面遷移するかということを考えていたけど、#swtwsを見ていてそもそもSegueを使わない/嫌いという人が結構いるんだなと思ったのでSegueを使わないで楽に安全に画面遷移する方法を考えてみたら意外といい感じになった。 Segue…

2017年やること

自分用 大事な順 [ ] ケガ病気しない [ ] アプリを5個出す [ ] iOS以外のこと何か身につける [ ] 100ブクマ [ ] 月2記事 [ ] TOEIC850 [ ] フォロワー1000人 (年初550人) [ ] 貯金xx万 [ ] シークレット

クソアプリ開発は目的ではなく手段

クソアプリ Advent Calendarの16日目です。 先日個人で作ったSushiCameraというアプリをリリースした。 hiragram.hatenablog.jp 個人で作ったアプリがストアリリースまで行ったのは初めてだったので、やる前の気持ちや今の気持ちを雑に書く。 クソアプリ作る…

UITableViewのセクションの区切り線を消す

高さ1のviewを無視する系。 UITableViewCellのサブクラスでaddSubviewをオーバーライド。 override func addSubview(_ view: UIView) { if view.frame.height * UIScreen.main.scale == 1 { return } super.addSubview(view) } おわり。

registという単語が含まれていたらビルドエラーにするやつ作った

iOS その3 Advent Calendarの9日目の記事です。 最近、NGワード一覧みたいなのを定義しておいたらコンパイル時にそれがコード中に含まれていないかチェックして含まれてたらビルド落ちるように出来ないかな〜とか思って試してみた。 XcodeのBuild phaseの中…

アクセス修飾子周りでSwiftのバグっぽいのみつけた

Swiftのバージョンは3.0 ViewController.swift import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() print(TypeA.name) } } ProtocolA.swift import Foundation private protocol ProtocolA { } exte…

ビルドターゲットがフレームワークの時にCommonCryptoをimportしたい

この記事はSwift Advent Calendar 2016の2日目です。 TL;DR 結局イケてる解決はできませんでした 前提 UIにかかわらない部分を切り離すため、Embedded Frameworkの仕組みを用いてモデル層を別モジュールにした API通信時にSHA256でトークンを作ってるところ…

SushiCameraとかいうアプリをリリースした

お盆くらいから暇な時間を見つけてはちょこちょこ作ってたカメラアプリがようやくストアレビューに通ったのでリリースした。 SushiCameraというカメラアプリをリリースしたhttps://t.co/sdOzfDC6gA— 人間らしい生活 (@hiragram) 2016年11月5日 iOSの"写真"ア…

"ReactiveCocoa vs RxSwift"の和訳

https://www.raywenderlich.com/126522/reactivecocoa-vs-rxswift - Functional Reactive ProgrammingはSwift開発者の間でますます人気が高まってきている方法論である。それは複雑な非同期処理のコードを書きやすく、理解しやすくすることができる。 この記…

Enums as configurationは別にアンチパターンでは無いのでは

ちょっと前の記事だけど。 Enums as configuration: the anti-pattern via @jesse_squires この記事が言いたいのは enumでインスタンスの設定をするのは、提供された選択肢から選ぶしか無いので利用者側の自由度が低く良くない。 ライブラリやフレームワーク…

Swift3の新しいアクセス修飾子について考察

3行で Swift3から新たなアクセス修飾子 open,fileprivateが追加された privateの扱いが変わった ゆるい順に、open,public,internal,fileprivate,private open 「モジュール外からアクセスでき、 サブクラス化(継承)可能である」ことを示すアクセス修飾子。以…

複数のプロトコルに適合する型、という書き方

最近知りました。 //: Playground - noun: a place where people can play protocol Animal { func run() } protocol Vehicle { func drive() } struct Nekobasu: Animal, Vehicle { func run() { } func drive() { } } let bus: protocol<Animal, Vehicle> bus = Nekobasu() </animal,>…

xibからビューのインスタンスを生成するコードの治安を良くする

AwesomeView.xibからAwesomeViewのインスタンスを作りたい時、普通にUINibのイニシャライザを使って呼び出すと let awesome = UINib(nibName: "AwesomeView", bundle: nil).instantiateWithOwner(nil, options: nil).first as! AwesomeView こんなに治安が悪…

iOSDCに参加した #iosdc

会場が練馬って朝知ったので遅刻した。 到着即ランチセッション #iosdc— ひらり (@hiragram) 2016年8月20日 ランチセッションの弁当がうまそう pic.twitter.com/UhgOb9hRRp— ひらり (@hiragram) 2016年8月20日 ベストトーク賞とられたReactive Programmingの…

NSTextFieldをAutoLayoutで配置すると幅が0になっちゃう

最近趣味プログラミングでAppKitを触っている。 AppKitについて言いたいことはいろいろあるがUILabel代わりに使ったNSTextFieldについてハマったので書いておく。 Slackのメッセージみたいな見た目のビューを作りたくてAutoLayoutでごちゃごちゃ配置してたら…

awakeFromNibのドキュメント読んだ

awakeFromNib https://developer.apple.com/library/ios/documentation/UIKit/Reference/NSObject_UIKitAdditions/#//apple_ref/occ/instm/NSObject/awakeFromNib ちゃんと理解してる自信がなかったので読んでみた。 Prepares the receiver for service afte…

英語学習を初めて2ヶ月経ったのでやってることとやめたことを書く

私は英語チョットデキルになりたいので、そのためにチョットがんばることにしました。 去年の12月らへんからいろいろ始めて、だいたい2ヶ月くらい経ったので、やってることとかやったけどやめたこととか書く。 「ワタシハ リナックス チョットデキル」Tシャ…

Apple Watchにはカバーつけたほうがいい

## Apple Watchめっちゃぶつける これは普段もともと腕時計をつける習慣がなかったのもあると思うけど。 狭いところ通りながら壁にこすりつけたり、自販機のおつり取り出しながら強打したりします。いまでもします。 購入直後にぶつけまくって、さすがにやば…

Swiftのイニシャライザややこしかったのでまとめた

既定イニシャライザ(default initializer) 引数なし。 イニシャライザが1つも定義されておらず、すべてのプロパティの初期値が設定されている時に利用可能になる。 ベースクラスの既定イニシャライザは指定イニシャライザとして機能する。 指定イニシャライ…

iOSのバージョンによってはUIAlertControllerのボタンの並びが変になるかもしれない

古いiOSだとUIAlertControllerにaddActionした順に左から表示されるっぽい。 たまたま古いテスト機で触ってて違和感があって発見。 こんなコードが import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad…

UIViewのアニメーション中にタップイベントが発生しなくてハマった自戒

起きたこと UITableViewをスクロールしてると、たまに指が滑る(縦にスワイプしてもtableViewが追従してこない)ような違和感があった 最近、UITableViewのセル内の画像をUIViewのtransitionWithViewを使ってフェードインさせるように改修してた フェードイン…

さよなら2015年

あんまりテレビが面白く無いのでTwitterの全ツイート履歴を見ながら1年を振り返ってみる。 ちなみに月ごとのツイート数はこんな感じ。 ←1月 12月→ 1月 初めて自宅にサーバーを置いた。 アニメ録画環境を作った。 ローリングガールズ録画出来てないw— ひらり…