Macでプログラミング{11} [転載禁止]©2ch.net
Swift本はそろそろ充実してきたかなあ……(´・ω・`) Swift で OS X アプリを開発したいんだけど、最近出てる本は iOS ばっかりですよね
なんか OS X アプリ開発入門にオススメの書籍ありますか? もうこの際 Objective-C でも英語でもいいです ヒレガス本のバージョンはどうなってるか「ヒレガス本」とググったら、
「MAC OS X Cocoaプログラミング
アーロン・ヒレガス、 著書」とずばり出てきて驚いた。
昔からヒレガス本より木下のHMDTの方が良いと思ってたが、HMDTはいい加減古いからな。
今年出たヒレガス本 第四版とか良いんじゃね。
http://www.amazon.co.jp/dp/4501552700/ >>6
ありがとう、注文しました
有名な本なら Swift でやってみてる人がいるんじゃないかと思ってググったら本当にいて、更に投稿日が今日でわらった ヒレガス本4版は以前の版に比べて初心者に対して敷居が高くなってる。
HMDT本は論外。
しかし、RubyCocoaって廃止になったのか。短かったな。 さてMSが.NETをオープンソース化してMacとiOS向け開発に乗り込んできたわけだが
新しい流れを生むのだろうか >>12
これは、一気に開発の人が流れていってしまいそうな……(´・ω・`) どうせWin以外はクソなランタイムなんだろ
これで「Mac版もあります!」なクソアプリが増える訳だ >>13
まさかと思ったら本当にmonoかよ...しょぼ。 それよりも Visual Studio フル機能版が無償提供されるようになったのが大きいよコレ
開発者なら Win環境も持ってる率多いだろうから
Winアプリか...作ってみてもいいかな...って流れ始めてるよ。
Mac版もありますじゃなくてMac版?作る予定ないよってなりかねない。 >>16
Visual StudioってMac版ってあるの?ねーだろ
だったら、>>16みたになプラットフォーム毎に環境を変えることができない音痴なのががだろうな
最後の2行なんて音痴だともっともな理由付けなんだろうがイミフ ttp://jp.techcrunch.com/2014/11/13/microsoft-takes-net-open-source-and-cross-platform/
>Microsoftはデベロッパー・ツールのクロスプラットフォーム化の努力を一歩押し進め、
>近く.NETをMacとLinuxに移植することを発表した。同時に、.NETのサーバ・サイド
>(クライアントの.NETではない)のコア・スタックを次のバージョンからオープンソース化するという。
>クライアントの.NETではない
>クライアントの.NETではない
>クライアントの.NETではない
LinuxはともかくMacでサーバサイドAPIなんて需要あんのか?
ttp://itpro.nikkeibp.co.jp/atcl/news/14/111301881/
>Visual Studio 2015は、Windowsだけでなく「iOS」や「Android」用のアプリケーション開発にも使用できる。
Windowsで動く開発環境でiOSアプリ開発なんて制限ありまくりとしか思えん。
下手したらシミュレータすらないんじゃね。 「iOS」や「Android」用の「サーバーサイド」アプリケーションだろ?
その記事の書き方がおかしい。 サーバサイドの.netってどういうの?
WPFとかWindows Formsは含まないぜ、っていうことかな。 ASP.NETだよ
簡単にいえば、jspやservletみたいなのをC#やVBで書ける ああでもこれ、C#でiOS SDKが使えるって事で、マルチプラットホームの互換レイヤではないのね。 Xcode Proejctが使用する環境変数、$(PRODUCT_NAME)とか$(TARGET_TEMP_DIR)など、はどこに格納されていて読み出されるかわかる?
環境変数の変更方法でも良いのだけど。
プロジェクトを格納するフォルダ名を変更したら、古いままで変更されず
元の名前のディレクトリが作られて現在途方に暮れてるとこ。 一応、自己解決。
xcodebuildコマンドで出来そうな感じ。 C言語のプログラムからInput Methodの状態を取得したいのですが,
#include <Carbon/Carbon.h>
int test() {
TISInputSourceRef is = TISCopyCurrentKeyboardInputSource();
CFBooleanRef ret = TISGetInputSourceProperty(is,
kTISPropertyInputSourceIsASCIICapable);
return CFBooleanGetValue(ret);
}
のように書くと,初回の呼び出しは期待通りに動作するものの,
同一のプログラムからこの関数を複数回呼ぶと,毎回同じ結果が
返ってきて,IMの状態変化を確認することができません.
C言語のプログラムからIMの状態変化を追跡するのは不可能なのでしょうか? 無理臭いな。試したけど無理だった。
http://stackoverflow.com/questions/26024400/osx-cocoa-input-source-detect-change
NSTextInputContextKeyboardSelectionDidChangeNotification を使えとある。 >>34
ありがとうございます.
Objective-Cがぜんぜん書けないので,ダサいですがtest()を
別プログラムに分離してexeclすることで解決しました. >>33
CoreFoundationってCarbonだっけ? どこからそういう疑問が湧いたのかわからんが、
TISCopyCurrentKeyboardInputSourceがCarbonだわな Carbon.frameworkってまだあるのか。 あるよ
OSのアップデートでdeprecatedになるAPIもあれば未だ新しく追加されるAPIもある 若干スレチかもしれませんが、いきなり質問失礼します。
家でMac、研究室でWindowsを使っています。CとC++の作業をしたいのですが、両者で問題なく同期して続けて作業を行えるようにしたいです。
IDEを使うとしたら、ソースコードはDropBoxで同期するとしても、IDEは何を使ったら上手く共有して作業出来るでしょうか?
Vimとgccでやるしかないのでしょうか? >>41
実はそれを今日試したばかりなのですが、CDTのインストール作業(CDTにチェックを入れた後、依存関係のチェックまでは上手くいきますが、その後のインストール)でエラー吐いてしまって、上手く環境を構築出来なかったため、他にもっと手はないかと質問させていただきました。
因みに環境は
OS X 10.10.5
Eclipse Juno
です。 Code WarriorはMac/Winでクロスプラットフォーム開発できたが、
プロジェクト共有できたかどうかは知らない。今では入手も動作も無理だが。
最近だとVisual Studio Codeがクロスプラットフォーム言うてる。
ソースコードを同期したいのであって、同じIDEを使いたいわけではない、
ということならMac/Winそれぞれで適当なC/C++の開発環境を使ったら
どうかな、あかんか。などとよく知らずに書いたが、ターゲットは何だろう。 丁寧な返信ありがとうございます。
VisualStadioCodeですか。ggってみましたが、確かにクロスプラットフォームです。ありがとございます。
Eclipseの件は、昨日何回やっても出来なかったCDTのインストール作業が今日やってみるとすんなり出来ました。(恐らくサーバー側の問題なのでしょう)
よって、後は研究室側のEclipseでCDTのインストール作業さえ出来れば、Eclipseで作業しようと思います。
そこで何か問題があればVisualStadioCodeに手を出してみようと思います
家と研究室で別のIDEを使うという点は、PCごとでUI自体が異なるのは個人的に構いません。
しかし、プロジェクトの管理方法やディレクトリ構造がIDEで異なると、ディレクトリの構造が最初作ったプラットフォームによってバラバラになってしまったり、そこまでいかなくてもインポートし直さなければならなくなるのは面倒です。
その点を考慮しなくてもよいIDEがあれば、それでも問題ないと考えています。
相談に乗っていただきありがとうございます。ここで相談して本当によかったです。 いろいろやってハマっているのだが、Objective-cでSJISファイル名保存って
どうやるんだ?
実現できているアプリも存在するのでできるはずなのだが。
SJISファイル名の読み込みはできている。
もちろん本文がSJISの読み込みはできている。
ファイル名のみが対応できていない。 SJISファイル名保存ってイミフだが、文字化け化けなファイル名でってことか?
ファイルシステム中はあくまでもUnicode
SJISで保存に見えているが、SJISをASCII文字列とみなしてUnicodeへ変換してだろう
実現できているのではなくてエンコーディングを全く無視気にしてないからだろう。本来しなければならないことをしていない。CocoaAPIは本来しなければならないことを強制している部分もあるのでちょっと工夫が必要 ああ、ASCIIって0x7Fまでなのか。正しくはMacOSRomanか(?)
NSString *thePath = @"/Users/yourname/Desktop/ほげほげ.plist";
NSData *sjisData = [thePath dataUsingEncoding:NSShiftJISStringEncoding allowLossyConversion:YES];
NSString *garbledPath = [[NSString alloc] initWithData:sjisData encoding:NSMacOSRomanStringEncoding]
NSDictionary *dict = ...;
[dict writeToFile:garbledPath atomically:YES];
だけでよさげ。File Name Encoding Repair.app で元に戻せるし
てか、意味ねーっとしか思えないんだけどw >47
ありがとう。試してみるよ。
MacでWindows用で使うようのファイルを作りたく、SJISのファイル名で保存したいのです。 元SJIS文字化け化けUnicodeファイル名のをMac上で作っても意味ないと思うけど
メールで送るならメーラが、ファイルサーバへならファイルサーバが文字コード変換行うべきで今時行われるもんだし、Mac上で文字化け化けのは文字化け化けがもう本物で本来の元SJISにするようななんらかは無いような
ZIPとかアーカイブ中のならそれはMac上の文字化け化けを元にするわけでもないし、別の問題/処理だろう。アーカイブするときのエンコード指定とか、上のメーラとかファイルサーバと同じこと
だと思うので、意味ねーっとw Macでtar gzipで固めてLinuxもってったら、濁点が全部外れて難儀したことあるなw 適当に zip とかのファイルアーカイブでも使わなきゃファイル名 SJIS なんて無理でしょ。
マックのファイル名は所謂 utf-8-mac エンコードなんだから。 まったくもってスレチだが、
Mac上で元SJISで文字化け化けのファイルを作ってzipしても、文字化け化けの Unicode文字列 でzipに納まるので全くの無意味
zipコマンドでメンバ名のエンコードを指定する方法はない。ファイルシステムのエンコードがデフォルトでそれ一択
解凍する側が対応するのがスジみたい。WindowsでもUTF-8のをちゃんと解凍できるパッチが提供されたよう
でも、そんなこと知らんそしてなにかとても偉そうなWindowsユーザwのためには、
https://github.com/rubyzip/rubyzip
入れてのスクリプト書いた方が手っ取り早そう
Basic zip archive creation
zipfile.add(filename, folder + '/' + filename)
を
zipfile.add(filename.encode('UTF-8-MAC').encode('SJIS'), folder + '/' + filename)
にすれば思い通りになるだろう。rubyは全くわからん見よう見まねだがw これ?
http://www.scripts-lab.co.jp/mind/whatsmind.html
FreeBSDもなら動くんじゃね。まあ最悪でもVirtualBoxにLinux/FreeBSDを入れてw FREEBSDにしてーのでとりあえずインストールドキュメント通りには入って動くな
make test-userkernel で最後自動起動しないので??手動でだけど ああ、よく見てなかった。make test-userkernel でテストは別に起動なのか。全くドキュメントの通り問題なくだな
これ以上本格的になんかする気も無いので本当に全く問題ないのか知らんけどw NSDocumentクラスでSaveAs…で保存する時にファイルタイプをSaveパネルに
メニューを出して選択させたいのだけど、どこでそれをやれば良いの?
DoSaveAs:をオーバーライドしてSaveAs…の挙動をすべて自前で書かなきゃ
ならないの? 自己解決した。
- (BOOL)prepareSavePanel:(NSSavePanel *)savePanel >>35
Objective-CなんてただのCにちょっとオブジェクト指向足しただけなんだから簡単 >>58
xcodeのプロジェクト設定のinfoのとこでDocumentType追加すれば、自動でセーブパネルにメニュー出るよ。
後はdataOfTypeのtypeNameを見てデータ作ればいいはず。 スレ違いだったら、すみません。初心者にアドバイスいただけたら幸いです。
Swiftの入門書で一応の学習はできたのですが、次のステップにどう入ればいいか
途方に暮れております。
作ってみたいアプリは一応あるものの、アプローチの仕方がどうしたらいいものかと。
逆引き辞典のようなもので、やりたいものと合致した方法を探せばいいのでしょうか?
漠然とした質問で申し訳ないです。 作ってみることだろう。入門書だけではごく一部のクラスしか使わないし、
入門の延長でも同じこと。作ってみたいのがあるのなら、実際にそれを作って
みることだよ。
Cocoaのクラスも一通りやるよりも作りたいものに必要なクラスを見定めて
その時にドキュメントを読む方が実践的。 >>63
遅くなりましたが、レスありがとうございます。
そのクラスについての情報というのは、どこから仕入れれば良いのでしょうか……。 Apple Developer Connectionにもあるし(ドキュメントは会員でなくても
見られる)、XcodeのHelpのDocumentation and API Referenceからでも
見ることが出来る。 >>65
再度、ありがとうございます。
やってみます。 ちょっと気になってググったら、辞書.appの辞書データが意外と簡単な構造してたんで、
BerkeleyDBXML に喰わせてデータベース作ってみた。
これで全文検索も後方一致もお手軽にできて、単語探すの捗るわ。 >>67
辞書.appはもっと活用されてもいいよね