村上幸雄

Bitz Co., Ltd.のPresidentで、macOS/iOS/watchOS…

村上幸雄

Bitz Co., Ltd.のPresidentで、macOS/iOS/watchOS/tvOS/Androidアプリケーションのプログラマ。【Cocoa練習帳】http://www.bitz.co.jp/weblog/

マガジン

  • Cocoa練習帳

    iOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swift, C++など

  • まぼろしの世界

    普通の日常をとても面白いものとして表現できるか?の朝鮮の記録です。

最近の記事

[SwiftUI]月旅行計画

Mac OS Xが発表された際に、開発者を増やすという目的だと思うが、O'Reillyから『入門Carbon』と『入門Cocoa』という書籍が出版された。今回のCocoa練習帳では、『入門Carbon』のサンプル・アプリケーションをSwiftUIで実装することに挑戦した。 Xcodeで、macOSアプリケーションのSwiftUIプロジェクトを生成する。 以下のCarbonで実装された初期のMacOS Xのアプリの画面をSwiftUIで実装する。 UI部品が縦に並んでいる

    • [Cocoa][Swift]StoreKit 2

      Apple Developerサイトでは、StoreKit 2という説明があるがフレームワークはStoreKitのまま。触ってみた感じは、既存のStoreKitを簡単に扱えるようにしたSwiftで実装されたライブラリだ。レシート検証もやってくれるようで、アプリ内で行う場合は、自力でASN.1でエンコードされたPKCS#7コンテナを解析するコードの実装が必要だったので助かる。 StoreKit 2は購読型の商品関連で便利になっているようだが、今回は消費型の商品のみとなっている

      • [SwiftUI]Appプロトコル

        XcodeでiOSの新規Appプロジェクトを生成すると雛形から作られるのが、Appプロトコルを実装する〜Appクラスだ。 import SwiftUI@mainstruct LandmarksApp: App { var body: some Scene { WindowGroup { ContentView() } }} 計算型プロパティbodyの実装は必須となる。 WindowGroupはビュー階層のコンテナ。 Co

        • [Cocoa][Swift][Xcode]使うXcodeのバージョンを切り替える

          自社のアプリケーション開発では、常に最新のOSとXcodeを使用しているので考えることはなかったが、大規模なプロジェクトに参画して仕事をする場合、複数のXcodeをインストールして、切り替えながら使わないといけないことがある。 そんな際に役立つのが、xcode-selectコマンドだ。 複数バージョンのXcodeをインストールする 多くの人に役立つよう、基本的なことから説明する。 常に最新バージョンのXcodeを望むなら、App Store経由でインストールする。 希

        [SwiftUI]月旅行計画

        マガジン

        • Cocoa練習帳
          68本
        • まぼろしの世界
          2本

        記事

          [Android][Kotlin]Androidの設定値について

          指定したターゲット(パッケージ名や利用するサービスの設定)でAndroidアプリケーションをビルドする方法は複数ある。初期のものであったり、それを改善したものであったり。最新の方法だと利点が多いので選択できればいいのだが、歴史が長いソースコードだと、様々な理由から方法を変更できなかったり。 何がベストなのかは状況によって異なるが、まずは知らないことには話にならないということで調べてた方法を列挙してみる。 androidコマンド 最新のAndroid SDKのツールではなく

          [Android][Kotlin]Androidの設定値について

          [macOS][Kotlin]null安全

          Cocoa + Objective-C では、nilは許容されるものでnilに対してメソッド呼び出しを行なってもアボートしないが、Javaだとnullアクセスは例外が投げられてしまう。そのような考えの違いが、null安全についても、SwiftとKotlinで差となっているのかな? JavaではC言語の基本的データ型に相当するのが基本型(プリミティブ型)で、C言語の構造体に相当するクラスはC言語のポインタ型に相当する参照型(リファレンス型)となる。そして、C言語と同様に値渡し

          [macOS][Kotlin]null安全

          [macOS][Kotlin]結果とエラー情報を持つデータ

          Javaでは結果を関数の戻る値で、エラー情報は例外で、だったが、Androidは例外を勧めていないことは以前から感じていた。Kotlinでは、例外は復旧できない致命的な状況で利用とし、既存のJavaモジュールが投げてくる例外を包み込みResult型があったりしている。 自分でKotlinでプログラミングする際、あえて例外を利用する必要はないと思うので、どんなやり方が合うのか調べてみて辿り着いたコードを紹介する。参考にしたのは、ここ。 AndroidはActivityやFr

          [macOS][Kotlin]結果とエラー情報を持つデータ

          [macOS][Kotlin]開発環境を用意する

          仕事でAndroidアプリケーションをKotlinで開発しているので、macOSでKotlinを試してみる。 KotlinといえばAndroidStudioでAndroidアプリケーションをプログラミングだと思うが、macOS上で動作するKotlinで書かれたプログラムを動かしたいので、開発環境としてIntelliJ IDEAを使うことにする。IntelliJ IDEAはUltimate EditionとCommunity Editionがあるか、Kotlinプログラミング

          [macOS][Kotlin]開発環境を用意する

          [Cocoa][Swift]XCFramework

          Darwinで採用されています実行形式のバイナリ・フォーマットMach-oは、一つのファイルに複数のアーキテクチャのバイナリが格納できるという素晴らしい特徴があるのですが、同じCPUで異なるシステム向けのバイナリは同時に格納できないという欠点があるようです。以前だと、これで問題はなかったのですが、例えば、iPad OS向けアプリのソースからmacOSアプリを作ることができるUIKit for Mac (Catalyst)だと、x86_64でiOSとiPhoneシミュレータ(m

          [Cocoa][Swift]XCFramework

          [macOS]zshでgitのブランチ名を表示させる

          Mojaveまでは、手動でCommand Line Toolsをインストールしたら設置されるスクリプトを使ってbashでgitのブランチ名を表示させていたが、Catalinaからは設置されないようになったようだ。また、Catalinaからはzshがデフォルト・シェルになったということで、zshでgitのブランチ名を表示させる方法を調べた。 ホームディレクトリ配下に.zshというディレクトリを作って、そこにgit-completion.zshとgit-prompt.shをダウ

          [macOS]zshでgitのブランチ名を表示させる

          [cocoa][swift][kotlin]Cocoa.swift 2019-09に行ってきた

          会場は池袋コワーキングスペース OpenOffice FOREST、サンシャイン側だ。 発表 「NSTextViewにコマンドパレットをつける」キーボードのみで操作できるように、NSTextViewにコマンドパレットをつける仕組みの発表で、CMD + Lで起動し、出現したNSTextFieldに文字を打つと、関連するメニューやコンテンツが選択できるようになるものだ。 「macOS/iOS/Android Tips枠(その1)」iOS/Androidの新OSの情報や、ストア

          [cocoa][swift][kotlin]Cocoa.swift 2019-09に行ってきた

          [cocoa][swift]Tweeting

          システム側でのSNS共有のサポートが終了したり、公式のTwitter Kit SDKのサポートが停止するなどで、スマートフォン・アプリケーションにTweet機能を組み込む方法が変わってきているので、今時点のTweet機能を組み込む方法を調べてみた。 - ios - Social.framework iOS11から廃止。 - Twitter Kit SDK 2018年10月末でサポート終了。 - Android - Twitter

          [cocoa][swift]Tweeting

          [cocoa][swift]NSUndoManager

          NSUndoManagerの利用は、Swiftで楽になったと思うが、その仕組みが見えにくくなったと思うので、Objective-Cの場合から説明する。 CocoaのUndoとRedoは、NSInvocationというクラスでNSObjectの子クラスとメソッドを保持し、それをNSUndoManager内のスタックで管理することで実現している。 なんらかの操作を行うと、Undoに必要なNSInvocationのインスタンスがUndoスタックに積まれていく。 ユーザがUnd

          [cocoa][swift]NSUndoManager

          [cocoa][swift]iOSアプリケーション開発入門:はじめの一歩

          開発環境 - mac - iOS機器 Apple Developer Program - https://developer.apple.com/jp/programs/ 無料でも開発できますが、有料の登録をお勧めします。 参考資料 - 無料の"ブック"アプリのSwift Programming Series The Swift Programming Language (Apple Books) - 日本語ドキュメント https://devel

          [cocoa][swift]iOSアプリケーション開発入門:はじめの一歩

          [cocoa][swift]形態素解析

          「私」物語化計画という作家を育てるオンラインサロンに参加しているのだが、プログラマとして貢献できる方法として、執筆に役立つアプリケーションの開発に取り組んでみたいと考えている。その第一歩として、同一文章中に出てくる単語の個数を気にしているという話を聞いたので、テキストから文法情報を抽出する方法を調べたので発表する。 macOSで利用できる形態素解析 (Morphological Analysis) の機能は複数存在する。それは、それが実装された時期に利用できた機能などと関係

          [cocoa][swift]形態素解析

          [cocoa][swift]テーブルビューを使ったmacOSアプリケーション

          macOSとiOSのUI関連のフレームワークには差異があり、前者はNeXTSTEPから受け継がれたスタイルとなっていて、後者は貧弱な計算機リソースでの利用を想定した設定となっている。 ただ、最近ではmacOSのフレームワークの方がiOSの方に合わせることが可能な部分については似せてきていて、テーブルビューの場合は昔からのCell BasedとiOSと同様なView Basedの二通りの方式があるという状況だ。前者については非推奨となっているため、後者についてサンプルを作りな

          [cocoa][swift]テーブルビューを使ったmacOSアプリケーション