Swiftのリテラルについて

インターン先でSwiftの言語仕様について学ぶ機会があり、その中でリテラルについて学んだので少し理解を深掘りたいと思っています。 リテラルについて まず、この記事を書くにあたり、リテラルについて調べてみる事にしました。 リテラルは、シンタックスシ…

XCodeGenを導入してみた

XcodeGen Xcodeでチーム開発をすると、*.xcodeprojでコンフリクトが度々起こりコンフリクトを修正する機会が多くあります。 iOS開発者なら、誰しもが歩ん道だと思います。 *.xcodeprojは、ソースファイルの管理を行なっておりファイルの追加や削除をするとこ…

SwiftでFunctor型を書いてみる

Functorとは 構造内の値に関数を適用できるものである。 しかし、これだけを聞いてもわかりづらい。 この記事では、HaskellのFunctorを参考にSwiftのOptionalを用いてFunctorを理解していきたい。 HaskellのFunctor class Functor f where fmap:: (a-> b) ->…

中国のデザインはなぜ複雑なのか

中国のデザインの複雑さについて 1. 漢字 中国のサービスは、情報が高密度に置かれている。これは、漢字自体がアルファベットのように、小文字、大文字、そして、他のFontとの切り替えに向かない文字である特性がある。どれだけ、UIをシンプルにおいても漢字…

アリババ

アリババ 中国に最近とても関心があります。 そこで、アリババと言う本を目にしこれを読んでみる事にしました。 第1章 陰と陽のビジネスモデル 「天猫」と「タオバオ」は、アリババが手掛けるeコマース事業 天猫は大手ブランド向け、タオバオは小規模なブラ…

Golangにおけるポインタについて

これまで、Swiftをメインに書いてきましたが、最近golangを触る機会がありました。 Swiftでは考える機会がなかった ポインタ とメモリ についてまとめていきます。 初心者の方にわかりやすく伝わればいいなと思っています。 ポインタって? まず、ポインタと…

UIViewRepresentableとUIHostingController

UIViewRepresentable SwiftUIの中で、UIKitのViewを使用したい時に継承します。 makeUIView(context:) updateUIView(_:context:) この2つの関数を呼ぶことで、Viewの実装を完結することができます。 makeUIView(context:)は、viewの初期化 updateUIView(_:co…

1年間休学したことの振り返り

ここ最近忙しく、更新をしていませんでしたが約1年間インターンをしていた、Popshootを2月18日にやめました。 4月からは、大学生活を送っています。 最近いろいろな人にプログラミングの勉強方法を聞かれることが多いです。 僕の経験は、エンジニアを始めた…

"プロダクトマネジメントのいろは" をVolareとTechTrain共催で開かせていただきました!

Peoplyticsの奥西さんを迎えて、Volare と Tech Train でプロダクトマネジメントについての勉強会を開かせていただきました。 そこで、勉強会の内容をシェアしていきたいと思います。 将来、PMになりたいけどPMってどんな仕事? エンジニアのキャリアってど…

Herokuにデプロイする時に、Ginがデプロイできない

最近、サーバーサイドを実装してみたいという気持ちからHerokuにデプロイして個人でサーバーを書こうと思いました。 しかし、ginというライブラリがネックで ' git push heroku master ' エラーが出ていました。 ' router/router.go:4:2: cannot find packag…

間違ったブランチ元から新しいブランチを生やしてしまった。

masterから生やしたいのに間違ったブランチから草を生やしてしまった。 git rebase --onto maser 派生元branch名 現在のbranch名

DeepLink導入に関して 詰まった所をまとめます

iOS

これまで、FirebaseのDeepLinkを使っていましたが新たに、AppsFlyerのDeepLinkを利用することになりました。 私は、今回が初めてのDeepLinkの実装であったためそこで詰まった点についてまとめておきたいと思います。 これから、FireabaseやAppsFlyerでDeepLi…

SignalとDriverの違い replayから読み解く

SignalとDriverについて RxSwiftのSignalを調べてみると、 Signal は、replayを行わない。 Driver は、 replay を行う。 という解説を見かけました。 でも、replayってなんやろ?って思ったので、そこを踏まえて Signalと Driver の違いについて解説をしてい…

UIImageを丸くする。KingFisherを使って画像を丸くする

Kingfisherとは? URLから画像を取得する方法として、KingfisherというLibraryがあります。 画像を丸くする func roundImage() -> UIImage { let minLength: CGFloat = min(self.size.width, self.size.height) let rectangleSize: CGSize = CGSize(width: m…

[ios] FirebaseStorageの使い方・Singleを使って実装する。

現在、firebaseのstorageを使ってProfile画像を作っています。 主な使い方は、Firebaseのドキュメントを使って知ることができます。 Cloud Storage | Firebase はじめに CocoaPodsでFirebase/Storageをインストールします。 use_frameworks! pod "Firebase" …

サイバーエージェントで1ヶ月インターンをしました!

iOSを初めて、半年がたち自分の力を試してみたいと思い、インターンをしていたPopshootという会社からサイバーエージェントでインターンをしました。 インターンでは、Carteというアプリの新機能の実装を行いました。 Carteは、順天堂大学の教授と開発を行な…

Carthage bootstrapをしすぎるとエラーが起こる

今回、carthage bootstrapをしているとエラーが起こっていたのでそれについて解説します。 API rate limit exceeded for 202.214.112.129というエラーです。 XCodeのvaersionが上がり、Carthage周りでエラーが出てたのでBootstrapをすることにしました。 し…

Goで、apiを叩いてみた

//packageは、SwiftでいうClassに近いものかと理解しています。他のfileで関数を呼ぶときは、このpacage名を使う必要があります。 package main //importは、libraryに近いです。今回のliberaryはGoが用意しているlibraryらしいです。 import ( //fmtは、pli…

Xcodeのversionをあげた際に起こるCarthageでのエラー修正

エラーが出た経緯 iOSのversionが12.0になったので、updateすると自分の実機でdebugできなくなったのでxcodeのversionもあげました。 そしたら、Carthageあたりでめっちゃエラー出ました。 エラー Module compiled with Swift 5.1.3 cannot be imported by t…

LIpsとCartunesのCEOに聞くコミュニティ形成の方法

どこに、流動性があるのかを見つける->Lipsでは、SNSとして使われているのではなくECサイトとして作られている サービス開始時 一気にユーザーを増やすと、ノイズになって検証がしにくい 熱狂的なファンがとごに刺さってるかを見つける 有名人がいると、投稿…

アーカイブ時に起こったエラー ITMS-90037 The Info.plist file is missing or could not be parsed while app store submittion

今回、Appの登録のためにアーカイブを行い、Appstoreに登録を行おうと思いました。 しかし、ITMS-90037 The Info.plist file is missing or could not be parsed while app store submittionというエラーがおこりました。今回は、この解決策を書いていきたい…

Swifにおける依存性の注入(DI)について Swinjectを使って紐解く

この記事では、Swiftにおける依存性の注入についてをまとめていきます。 Dependency Injection Dependency Injectionを直訳されたのが依存性の注入です。 正直、依存性の注入と言われてもさっぱり意味がわかりません。 そこで、調べて見ることにしました。 D…

Swift4 QRコードの読み取りと生成を行なう

今回、QRCoderという名前でQRコードを読み取るかつ生成するという簡単なクラスを作ってみました。 主に、使ったLibraryはRxSwiftと SwinJectです。 Protocolの作成 まずは、コードから protocol QRCoderDelegate { func qrCoder(_ qrCoder: QRCoder, didDete…

KVOとGCD

KVO 今回は、 KVOについて興味を持ったので調べてみることにした。 KVOは、RxSwiftを有効活用できる処理の一つです。 KVOとは、Key-value-Observingの略で、プロパティの値の変化を通知してくれる仕組みのこと。 Swiftで、KVOを行なった場合 private var obs…

heyの佐藤さんの話

多くの企業が広告に結構依存している 広告の歴史 知識がないと知識のある人が世界を作ってしまう。ー>一般市民にも知恵を与える フランス革命の時に、新聞に広告掲載されるようになった。 広告費は、ユーザーが支払うのではなく企業がお金を支払うようにな…

Observableとsubjectに関して

Rxswiftまとめ Rxswiftには、swiftを勉強していてもなかなか出てこないメソッドが多くあります。 そこで、自分が読んだ記事を参考にまとめることにします。 Observable ObserVableは、イベントの監視を可能とするメソッド。observableを表している。 これら…

optional,map,クロージャに関して

理解が少しあやふやだった、.map、クロージャ、optinalについて詳しく書いた記事があったため少しまとめてみた。 https://qiita.com/koher/items/c6f446bad54442a28bf4 optional(1) Optionalやobservableは、一つの箱として考える。intやstringも一つの箱…

swift delegateの理解

デリゲートは、他のクラスに処理を委譲したる、通知する仕組み ①処理を依頼するクラス textFieldShouldReturnは、UITextFieldDelegateプロコトルに定義されている。 だから、UIViewControllerで宣言する必要がある。 プロコトル:言語の橋渡し的な役割を持つ…