マガジンのカバー画像

Cocoa練習帳

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

#cocoaswift

[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

もっとみる
[cocoa][swift]Swift Protobufについて

[cocoa][swift]Swift Protobufについて

JSON(JavaScript Object Notation)は、通信などで利用されているデータ交換フォーマットだ。人によって読み書きが容易で、かつ、計算機にとって簡単に解釈や生成が行える。また、システムの標準的なライブラリが対応していて導入が楽という利点もあり、広く利用されている。

JSONにかわるものとしてMessage Packというフォーマとがあって、コンパクトで率的に扱えるということ

もっとみる
[cocoa][swift]マイDocumentクラス

[cocoa][swift]マイDocumentクラス

一月の勉強会でMVCについてディスカッションすることになった。そこで場が盛り上がるよう、ネタとして自分がよく採用するマイDocumentクラスに発表する。

アプリケーションの設計法としてMVCが話題となることが多いが、それは、MVCはデザイン・パターンが話題になる以前のもので、今のデザイン・パターンから見ると複数のパターンが組み合わさった大きな枠組みのものだというのも理由としてあるのかな?

もっとみる
[cocoa][swift]ターミナルでgitの状態を表示する

[cocoa][swift]ターミナルでgitの状態を表示する

ターミナルでgit操作をしている際に、プロンプトにgitの状態が表示されると便利だ。

Appleが提供する開発環境は、App Store経由で入手できるXcodeをインストールするだけで完了するが、開発者サイトから個別にダウンロードできるCommand Line Tools for Xcodeをインストールしたのちに、以下の対応を行うと、プロンプトにgitの状態が表示される。

.bashrcに

もっとみる