ペンギン村 Tech Blog

技術をこよなく愛するエンジニア集団が在住するペンギン村から、世界へ役立つ(かもしれない)技術情報を発信する技術系ブログです。某アラレちゃんが済む村とは一切関係ありません。んちゃ!

Swift

Swift 4.2 では boolean の反転(toggle)ができるようになる(SE-0196)

どうも。ルパン三世 Part 5 の続きが楽しみな tobi462 です。 さて前回のenumの新機能に続き、また Swift 4.2 の話題です。 といっても、今回は驚くほど短いです(汗) Tl;Dr toggle() 実装 おわり Tl;Dr // before messageLabel.isHidden = !messageLabel.i…

Swift 4.2 では enum の件数がとれるようになる(SE-0194)

どうも。赤ワインが一番美味しい季節は秋だと思うのですが、この初春という時期もなかなか乙だと感じる tobi462 です。 今日は Swift 4.2 で追加される SE-0194 について軽くメモです。 ちなみに執筆時点で Xcode 9.4 beta 1 がリリースされていますが、こち…

【iOS】APIKitを使ったXML取得

まえがき 結果 つまづいたポイント "https"から始まるURLじゃないと通信できない。 独自のXMLパーサーを実装する必要がある。 文字エンコーディングに気をつけよう まえがき 初めまして。ペンギン村の通行人po_miyasakaです。 APIKitを使用してGoogle Sugges…

【iOS】【Swift】太り過ぎなUIViewController.viewDidLoadをスリムにして可読性を爆上げする

前書き 本命/義理チョコを今か今かと待ちわびています、ナガクラ(@nagakuta)です!一ヶ月ぶりの投稿になります! 今回は上級者が開発時に使うといわれる、ちょこっと役立つTipsを紹介します!(バレンタインだけに) TL;DR viewDidLoadをスリムにするには XI…

【iOS】ちょっと待って!その画面UITableViewで作る必要ないかも

はじめに ダーリンことカムイです(嘘松) 今日は個人的によく使うクラスの1つであるUITableViewについて書きます。 一覧 != UITableView 皆さんはUITableViewを普段どんな時に使っているでしょうか。 「一覧を表示する時に使うアレでしょ?」というお方、こち…

ターミナルからXcodeを1コマンドで開くCLIツールを作ってみた

どうも、攻殻機動隊シリーズでは S.A.C が一番好きな tobi462 です。 今回は Swift Package Manager で、ターミナルからXcodeを開くCLIツール xcode-open を作ってみたので、その紹介です。 モチベーション 使い方 インストール 使い方 オススメのエイリアス…

NavigationBarを含んだ画面でViewで全体を覆う方法

qiita.com 通信中に画面を操作させたくない理由から、マスキングを画面にすることがよくあると思います。 ただNavigationBarを含む場合、単純にself.viewにaddSubviewするだけではNavigationBarまで覆ってくれません。 その対処法としてappDelegate.windowに…

【iOS】【Swift】「RootViewController + Wireframe」で画面遷移での消耗を回避する

自己紹介 はじめまして、ペンギン村で一番やかましい住人のナガクラ(@nagakuta)です! Slackだけでなく、ブログもやかましく更新していきます!!(宣言) TL;DR RootViewControllerをAppDelegate.window.rootViewControllerに指定してから画面遷移するよう…

Swiftと比較しながら見る、KotlinのDSLを支える技術

自己紹介 DSLとは KotlinのDSL 拡張関数(extension function) 演算子オーバーロード メソッド規約 invoke規約 Kotlintestの例 括弧の外側のラムダ 中置呼び出し レシーバ付きラムダ kotlinx.htmlの例 Swiftでは 機能のまとめ 最後に 自己紹介 はじめまして…

ふわっと出てくるPopup処理をやってみる。

ペンギン村の住民のカムイです。 Qiitaに上げた記事や、僕が開発している日課メーターについて、こちらで何か書ければいいなぁって思ってます。 今回はこの間投稿したQiitaの記事について。 qiita.com アニメーション処理をAutoLayoutを使って表現しています…