マガジンのカバー画像

Cocoa練習帳

68
iOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swift, C++など
運営しているクリエイター

#swift

[Cocoa][Swift]StoreKit 2

[Cocoa][Swift]StoreKit 2

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

StoreKit 2

もっとみる
[SwiftUI]Appプロトコル

[SwiftUI]Appプロトコル

XcodeでiOSの新規Appプロジェクトを生成すると雛形から作られるのが、Appプロトコルを実装する〜Appクラスだ。

import SwiftUI@mainstruct LandmarksApp: App { var body: some Scene { WindowGroup { ContentView() } }}

計算型プロパティb

もっとみる
[Cocoa][Swift][Xcode]使うXcodeのバージョンを切り替える

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

自社のアプリケーション開発では、常に最新のOSとXcodeを使用しているので考えることはなかったが、大規模なプロジェクトに参画して仕事をする場合、複数のXcodeをインストールして、切り替えながら使わないといけないことがある。

そんな際に役立つのが、xcode-selectコマンドだ。

複数バージョンのXcodeをインストールする
多くの人に役立つよう、基本的なことから説明する。

常に最新バ

もっとみる
[Cocoa][Swift]XCFramework

[Cocoa][Swift]XCFramework

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

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

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

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

ホームディレクトリ配下に.zshというディレクトリを作っ

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

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

会場は池袋コワーキングスペース OpenOffice FOREST、サンシャイン側だ。

発表
「NSTextViewにコマンドパレットをつける」キーボードのみで操作できるように、NSTextViewにコマンドパレットをつける仕組みの発表で、CMD + Lで起動し、出現したNSTextFieldに文字を打つと、関連するメニューやコンテンツが選択できるようになるものだ。

「macOS/iOS/An

もっとみる
[cocoa][swift]Tweeting

[cocoa][swift]Tweeting

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

- ios
  - Social.framework
        iOS11から廃止。
  - Twitter Kit SDK
       

もっとみる
[cocoa][swift]NSUndoManager

[cocoa][swift]NSUndoManager

NSUndoManagerの利用は、Swiftで楽になったと思うが、その仕組みが見えにくくなったと思うので、Objective-Cの場合から説明する。

CocoaのUndoとRedoは、NSInvocationというクラスでNSObjectの子クラスとメソッドを保持し、それをNSUndoManager内のスタックで管理することで実現している。

なんらかの操作を行うと、Undoに必要なNSInv

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

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

開発環境
- mac
- iOS機器

Apple Developer Program
- https://developer.apple.com/jp/programs/
    無料でも開発できますが、有料の登録をお勧めします。

参考資料
- 無料の"ブック"アプリのSwift Programming Series
    The Swift Programming Language (Ap

もっとみる
[cocoa][swift]形態素解析

[cocoa][swift]形態素解析

「私」物語化計画という作家を育てるオンラインサロンに参加しているのだが、プログラマとして貢献できる方法として、執筆に役立つアプリケーションの開発に取り組んでみたいと考えている。その第一歩として、同一文章中に出てくる単語の個数を気にしているという話を聞いたので、テキストから文法情報を抽出する方法を調べたので発表する。

macOSで利用できる形態素解析 (Morphological Analysis

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

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

macOSとiOSのUI関連のフレームワークには差異があり、前者はNeXTSTEPから受け継がれたスタイルとなっていて、後者は貧弱な計算機リソースでの利用を想定した設定となっている。

ただ、最近ではmacOSのフレームワークの方がiOSの方に合わせることが可能な部分については似せてきていて、テーブルビューの場合は昔からのCell BasedとiOSと同様なView Basedの二通りの方式がある

もっとみる
[git][OSS]Upstream開発

[git][OSS]Upstream開発

GitHubで公開されているオープンソースなコードを利用する際、修正が必要になった場合の対応方法として、Upstream開発の手順を説明する。

Upstream開発とは、簡単に説明すると、修正内容を本家にpull requestを投げて取り込んで貰い、独自に手を加えてしまった結果、本家から枝分かれする状況を避ける方法だ。

利用しているOSSへの貢献にもなるので、一石二鳥とも言える。

GitH

もっとみる
[cocoa][swift]作譜用言語PL/0 表駆動の構文解析

[cocoa][swift]作譜用言語PL/0 表駆動の構文解析

『Algorithms + Data Structures = Programs』は、ニクラウス・ヴィルト氏の著名な書籍で、翻訳された書籍の表題は『アルゴリズム+データ構造=プログラム』だ。サンプルは、Pascalで記述され構造化プログラミングのバイブル的な書籍だ。

その次の版は、『アルゴリズムとデータ構造』と『翻訳系構成法序論』の二冊に分かれ、Modula-2で記述されている。その次の版は、O

もっとみる
[cocoa][swift]作譜用言語PL/0 構文に対する分析子の作成

[cocoa][swift]作譜用言語PL/0 構文に対する分析子の作成

有名な『Algorithms + Data Structures = Programs』の後半を独立して誕生した『COMPILERBAU:』を翻訳した『翻訳系構成法序論』を今の電子計算機環境で取り組んでみた。

使用するプログラミング言語Swiftを選択したのだが、コンパイラの実装には少々向いていない部分があるので、まずは、一文字読み込んで処理するサンプルを記述してみた。

import Foun

もっとみる