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

hiragram no blog

iOSとか

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

コカ・コーラ アクエリアス 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— ひらり…

僕の中のすてにゃん

僕とすてにゃん この記事は、すてにゃん Advent Calendar 5日目 の記事です。すてにゃんまじごめん。 みなさんはすてにゃんを知っていますか? すてにゃんというのは猫のことなんですが、僕は最初プログラマの人間だと思っていました。 今日は僕の中のすてに…

近況(8月~)

仕事がいろいろ変わって(not転職)、SwiftでiOSアプリを作り始めました。これまでは既存のObjcなアプリをメンテナンス&機能追加していくような感じでしたが、今度はゼロから全部をひとりで。めちゃめちゃ周りの力を借りながらやってます。 Apple Watch買いま…

YAPC::Asia2015のトートバッグに書いてあるコードをいじいじする #yapcasia

どうもどうも。1日に2度ブログを書くのは初めてです。 YAPC::Asia 2015のお土産でみんなもらったトートバッグにPerlのprint文が書いてありますよね? おみやげの内容については、さっき僕が書いた記事を御覧ください。 YAPC::Asia 2015のお土産を紹介するぞ…

YAPC::Asia 2015のお土産を紹介するぞー #yapcasia

今日前夜祭でした。明日からが本番です。 id:y_uukiさんのブログ論、とてもおもしろかったです。 僕は個人スポンサーチケットで参加したので、スポンサー特典も含めて頂いたノベルティを紹介しますー。 トートバッグ YAPC::Asiaの缶バッチもついてます。 Per…

高専の良し悪し

僕は高専卒です。 学校の中で一番新しい学科で、最先端の情報教育が受けられるらしいです。 高等専門学校 - Wikipedia どこの高専かはここには書かないけど聞かれれば普通に答えるのでTwitterとかで聞いてください。 高専に進学してよかったか -> Yes パソコ…

先着順申し込みに負けない勉強会情報の集め方

が美味しい季節ですね。 ここ数ヶ月、月に3回くらいのペースで外部の勉強会にオーディエンスとして参加しています。いつかはスピーカー側に立ってみたいものです。 勉強会への参加申し込みには2種類あって、先着順のものと抽選のものがあります。トレンドな…

しょぼいライブラリを公開したあとの話

興味を持ってもらえるのは嬉しいという話。 まえがき しょぼいライブラリを公開した話 -> 3連休で初めてOSS活動に足突っ込んでみたらクソ簡単だった YHImageViewer作った CocoaPodsにも公開した モチベーションが上がった その後 達成感の熱を持ったまま私は…

3連休で初めてOSS活動に足突っ込んでみたらクソ簡単だった

飛ばしっぽいタイトルですまんの やってることは全く大したことないけど、思ってたより100倍くらい簡単にできたので書きます。 How to系の話はもう他にいくらでもあるので以下の内容は書いてません。 SwiftでiOSライブラリを作る方法 CocoaPodsに公開する方…

HTML5オールスターズ勉強会に参加したメモ #dotshtml5

6月13日にHTML5オールスターズ勉強会(dots)に行ってきたのでメモ。 『いつになっても議論が終わらないパフォーマンス関連のWeb標準たち』 @_furoshikiさん モバイルWebを支える標準技術の進化の話。 アニメーション 過去: Animation Frame方式(JS->CPU) ex: …