Learn about specific development topics through these in-depth technical articles.
こんにちは、Sansan 技術本部 Mobile Application Group に所属している iOS アプリエンジニアの相川です。 本記事は Sansan Advent Calendar 2021 の23日目の記事になります。 adventar.org 現在 Sansan の iOS アプリチームでは開発環境の改善を目的としたマルチモジュール化を行っています。 絶賛行っている最中のマルチモジュール化の技術的な実現方法などについては、作業が進んだらいつか記事にしたいなと思っています。 本記事では Sansan の iOS アプリチームでマルチモジュール化を推進するためにどのようなことをやってきたのかということについて焦点を当てて以下の流れで説明していきます。 過去のマルチモジュール化の失敗とそこから得た学び マルチモジュール化についての知識を持つメンバーが不足していたため、手探りで進
Since we're about to start a new year, I thought it would be good to write about what I think it's the best approach for building iOS apps nowadays. For the past couple of years the iOS landscape has changed dramatically and I finally feel like we're in a proper position to enjoy making apps again, something I didn't feel since the early days of the platform. In this article, I want to describe wh
Concurrency is the entry point for the most complicated and bizarre bugs a programmer will ever experience. Because we at the application level have no real control over the threads and the hardware, there's no perfect way of creating unit tests that guarantee your systems will behave correctly when used by multiple threads at the same time. You can, however, make some very educated guesses. In th
Let me guess what you think about reading this title. Is it another annoying blog post that chides MVC and offers an alternative “super-duper pattern” that practically only leaves more questions? That is what I think when I see yet another article with iOS architectures. MVC, MVP, VIPER, RIBLET, Clean Swift, etc. There are dozens of posts, radically different opinions and architectures. Our commun
As of October 1, 2023, LINE has been rebranded as LY Corporation. Visit the new blog of LY Corporation here: LY Corporation Tech Blog Background Over the years, the LINE for iOS source tree has grown to a size of hundreds of modules. As of late 2019, the project consists of more than 1.4 million lines of code without showing any signs of stopping its increase. This in turn, tripped up the build ti
Many applications use WKWebView as a convenient way to display websites without requiring users to leave the app, referred to as in-app browsing. Although this can provide a great user experience, the powerful features available to developers using WKWebView allow a hosting app to monitor users across all of the sites they visit within the app. Powerful WKWebView features, such as JavaScript injec
What is Timelane? Timelane is a free app that bundles a custom Xcode Instrument and the frameworks to enable your code to talk to the Timelane instrument. Once you start profiling your app with Timelane you will be able to see your asynchronous tasks plotted visually on an interactive timeline you can inspect to heart's content. Free and extensible The app and related packages are free of charge.
Point-Free is a video series exploring advanced topics in the Swift programming language, hosted by industry experts, Brandon and Stephen.
LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog はじめに(背景) こんにちは。LINEでAIR ARMORの開発を担当しているSIM MINYOUNGです。AIR ARMORは、LINE GAME PLATFORMの一つであるAIRを構成する一つのセキュリティソリューションです。AIRについてはこのURLで紹介されました。前回のブログでは、Androidの署名の仕組みであるAPK Signingについて紹介されましたが、今回のブログでは、iOSのコード署名について紹介したいと思います。 コード署名は、ファイルの完全性を保証する、署名者(開発者)を確認する役割があります。Mach-O形式で表現されるiOSのバイナリーに対する完全性や署名者の検証は、後ほど説明するCode si
ポジション MSがRNめっちゃ使ってるという話について Brownfield事例は実質的にネイティブの事例 Skypeの事例ならどうなのか ネイティブアプリ開発者の仕事は減るのか まとめ みんなの反応 Xamarin勢の反応 Cordova勢の反応 iOSネイティブアプリ開発者の反応 jp.techcrunch.com こちらの記事への雑な感想です。感想は私の主観であり、ポジショントークであり、所属する組織の意見とは無関係であることを先に述べておきます。 また「ネイティブ」という言葉に「C/C++などから作られた機械語」という本来の意味に加えて、「プラットフォームの標準言語(WindowsのC#, AndroidのJava, iOSのObj-C)や標準開発ツールである」というニュアンスを含めることをご容赦ください。 ポジション こんな感じのポジションの人です。 中小企業向けにBtoBでアプ
こんにちは! 最近暑いのでビール最高と感じている新事業創造部バックエンドエンジニアのりほやんです。 今回はAppleが提供しているお試し価格の機能のひとつである無料トライアル機能を紹介します。 お試し価格とは お試し価格とは自動更新の定期購読に対して割引価格を設定したり、定期購読の開始時に一定の無料トライアル期間を設けることができる機能です。 お試し価格には都度払い、前払い、無料トライアルの3種類があります。 お試し価格はユーザーにとって、有料会員の体験ができるとても便利な機能です。 しかし公式ドキュメント以外の資料が少なく実装に何点か困ったことがありました。 そこで今回はお試し価格の無料トライアル機能を導入する方法についてご紹介します。 この記事が無料トライアルを導入しようか悩んでいる方、実際に無料トライアルを導入する方のお役に立てば幸いです。 本記事では、課金機能自体の実装の説明は行い
昨今のアプリはオンラインでの利用が当たり前であり、その中で多くのユーザ情報を扱っています。アプリの利便性やパフォーマンス向上のため、以下のようなことはよく行われているかと思います。 Web サービスに自動ログインするための ID やパスワードを保存する。 ユーザの個人情報を端末内にキャッシュする。 これらの情報は極めて慎重に取り扱う必要があるのは言うまでもありません。では iOS でこういったデータを安全に保管するにはどうしたらよいのか、施策とそこで利用できる機能について紹介したいと思います。 Keychain Services Keychain Services を使うと、パスワード等の重要な情報を OS 側に管理させることができます。登録した情報はアプリケーションフォルダの下に保存されるわけではないので、簡単にはアクセスすることはできないでしょう。 ただ iOS8.1 の時点では Ke
ほとんどのUNIX系OSにおけるCライブラリはAutotoolsを使って開発されています(./configure && make installの手順でビルドする)。 普通に./configure && make installすると実行している環境(MacやLinux)用のバイナリが生成されますので、そのままではiOSで利用できません。 iOSで使用できるようにするにはiOS環境用にビルド、いわゆるクロスコンパイルする必要があります。 Autotools(./configure)ではクロスコンパイルのことが初めから考慮されていてそのための機能がサポートされているので、./configureの設定を正しくできれば、意外と簡単にさまざまなCのライブラリをiOS上で動くようにビルドできます。 設定について iOSではデバイスとシミュレータでCPUアーキテクチャが異なるのでそれぞれのアーキテクチ
はじめに AWAという音楽ストリーミングサービスでiOSエンジニアをやっている小梛です。 AWAでは、Build時間が長いことによる開発効率の低下が定期的に問題になっており、高速化のためにさまざまな試行錯誤を重ねてきました。 その概要については、昨年末CA.swiftというiOS勉強会において「Build時間改善」というタイトルでLTさせていただきました。 ただ、このLTから既に半年が経過し、Xcodeのアップデートもあったことで、一部挙動が変わっていたりします。 本記事では、最新データを再調査した上で、LTでは伝えきれなかった詳細部分についても含めてBuild高速化についてご紹介できればと思います。 目次 調査環境 Build時間の計測方法 Build設定の最適化 コードベースのCompile時間削減 Buildマシンの性能を上げる まとめ 調査環境 macOS Sierra / Xco
まとめ RAMディスクを作ってビルドすると早くなる SSD上でビルドすると9分 RAMディスクでビルドすると6分 Androidは未検証だが同じと思われる Macだととても簡単にRAMディスクが作れる Jenkins等、ビルドが主目的の場合に有効と思われる メモリが余っているならやる価値はある Mac OS XでのRAMディスク作成 Macではhdidコマンドを使うことで、メモリ領域をディスクとして使用することが出来ます。 メモリはSSDと比べても遙かに早く、R/Wの激しい処理にうってつけです。 また、rootでなくても作成できるため、非常に便利です ディスク作成手順 2つコマンドを実行するだけです。 hdid -nomount ram://4096000 # 指定した容量でRAMディスクが作成されます。 # /dev/disk2等作成された場所が返ります。 # ファイルシステムがないため
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く