Langkah pertama di Mac: untuk pemula tentang OS X. Pemrograman di Mac OS X: menulis untuk iPhone Fungsi yang berguna dari tombol “Fn”

dalam topik ini saya akan menunjukkan cara menulis aplikasi sederhana untuk iPhone menggunakan SDK resmi. Cara mendapatkannya mudah, Anda perlu:
1. Mac berbasis Intel (meskipun juga berfungsi di PowerPC, tetapi setelah beberapa kali mengutak-atik)
2. SDK iPhone. Saya akan menulis dalam versi beta 2. Anda bisa mendapatkan versi terbaru dengan mendaftar di developer.apple.com. Beta 2 dapat ditemukan di torrent

HaloHabr

Agar tidak terlalu membebani Moskow, kami akan melakukan hal paling sederhana: aplikasi hanya akan menampilkan logo Habr. Buka XCode (wajib di 32-bit mode) dan buat aplikasi Cocoa Touch baru:

Sebut saja HelloHabr dan simpan ke desktop.

Ahli pembuatan proyek telah melakukannya untuk kami. Mari kita lihat isi main.m:
#impor

Ke dalam utama(ke dalam argc, karakter *argv)
{
NSAutoreleasePool * pool = [init];
//karena Anda tidak dapat menggunakan pengumpulan sampah di iPhone, kami menggunakan kumpulan rilis otomatis untuk membuat hidup lebih mudah
int retVal = UIApplicationMain(argc, argv, nihil, @"HelloHabrAppDelegate");
//untuk memulai aplikasi, Anda perlu memanggil fungsi ini. @"HelloHabrAppDelegate" - kelas ke mana kontrol akan ditransfer
;
kembalikan retVal;
}

Sekarang mari kita lihat HelloHabrAppDelegate.h:
#impor

Dan di HelloHabrAppDelegate.m:
#import "HelloHabrAppDelegate.h"
#impor "Tampilan Saya.h"

@implementasi HelloHabrAppDelegate
//arahan ini berarti bahwa ketika mengkompilasi, alih-alih memanggil melalui ., masukkan getter dan setter
jendela sintesis;
mensintesis tampilan konten;

//fungsi yang didelegasikan dari UIApplication
- (batal)applicationDidFinishLaunching:(UIApplication *)aplikasi (
// Buat jendela utama
self.window = [[ initWithFrame:[ batas]] rilis otomatis];
// membuat tampilan konten
self.contentView = [[ initWithFrame:[ applicationFrame]] rilis otomatis];
//tambahkan contetntView kita ke jendela utama agar ditampilkan
;
// membuat jendela utama terlihat
;
}

- (batal)dealloc();
;
;
}

Bagian kecil perangkat keras telah selesai, mari mulai menulis aplikasi. Simpan logo habr ke folder aplikasi. Kemudian seret dari folder ke folder Sumber Daya proyek kita di jendela XCode:

Sekarang mari tambahkan bidang baru “habrView” dengan tipe “UIImageView *” ke kelas MyView, mis. MyView.h akan terlihat seperti ini:
#impor

Sekarang mari kita definisikan prosedur init dan dealloc di kelas MyView:
#impor "Tampilan Saya.h"

@implementasi MyView
- (id) initWithFrame:(CGRect)frame (jika(diri = ) (
//warna latar belakang - hitam
];
//buat objek baru dengan gambar logo habr
Gambar UI *gambar = ;
//buat komponen yang akan menampilkan logo
self->habrView = [ initWithFrame:CGRectMake(0, 0, .width, .height)];
;
];

;
//tambahkan komponen tampilan logo habr ke formulir
;
}
kembalikan diri;
}

- (batal) dealloc (;
;
}
akhir

Semua. Kami mengkompilasi, menjalankan dan mendapatkan apa yang kami inginkan:

Dan sekarang metode membuat aplikasi untuk yang malas. Dashcode dapat membuat aplikasi web untuk iPhone dan iPod Touch. Buka Dashcode dan pilih RSS sebagai template. Buka tab Atribut Halaman, atur Judul Halaman: “Harbrahabr RSS”, URL Umpan: “feed://habrahabr.ru/rss/main/”. Lalu buka tab “Harbrahabr RSS” (perancang akan terbuka) dan ubah tulisan “My RSS Feed” menjadi “Habrahabr RSS Feed”:

Klik Jalankan dan dapatkan pembaca RSS Habr:

Pada dasarnya semuanya. Saya tunggu review, keinginan, saran di kolom komentar

Pembaruan: Saya sedikit menyesuaikan formatnya, kodenya lebih mudah dibaca, tetapi jauh dari ideal

Saya telah menggunakan MacBook Pro selama beberapa bulan di rumah dan saya bertanya-tanya apakah ada buku atau panduan bagus yang dapat membantu saya menjadi programmer Mac yang lebih baik. Mungkin Mac setara dengan Memulai Pemrograman Linux. Catatan. Saya tidak mencari sumber daya tentang cara memprogram aplikasi Mac, melainkan saya mencari panduan yang lebih umum dalam menggunakan Mac untuk lingkungan pengembangan umum.

Sebagai latar belakang, saya adalah seorang programmer Windows pada siang hari. Saya juga telah melakukan beberapa hal tentang Linux dan BSD selama bertahun-tahun, terutama di sekolah, seperti pemrograman soket, grafik, hal-hal tipe make install. Di rumah saya akan melakukan Java, Scala, PHP, dll. Di Mac.

Sejauh ini saya telah menggunakan Eclipse, QuickSilver dan TextMate. VMWare Fusion, XCode dan NetBeans sudah dikonfigurasi, tetapi saya tidak menggunakannya. Sakelar DVI KVM terhubung ke keyboard, trackball, dan monitor sebenarnya. Baru-baru ini saya bertahan hingga pertempuran terakhir dengan MacPorts, dan menyadari bahwa saya memerlukan x86_64. Masalah terbesar yang saya temui adalah menyiapkan PHP. Saya tidak tahu mengapa mereka tidak datang dengan perpustakaan MySQL dan GD. Akhirnya saya menyadari itu adalah Googling dan membuat ekstensi dari sumbernya. Saya merasa seperti saya tidak mendapatkan memo atau membaca tutorial dasar tentang cara menjadi programmer Mac, seperti cara kerja arsitektur secara keseluruhan. Bagaimana seorang programmer Windows bisa cukup produktif di Mac OS X?

Mengubah. Menurut saya, jenis aplikasi spesifik yang ingin saya kembangkan tidak terlalu penting. Bisa Java, Scala, PHP seperti yang saya sebutkan, atau Kakao, C++ atau apa pun.

Saya mencari buku khusus, sumber daya, tip tentang cara menjadi programmer Mac yang lebih efisien, lebih disukai sesuatu di luar "instal XYZ".

6 jawaban

Sepertinya Anda memerlukan gambaran umum tentang cara kerja Mac OS X di tingkat sistem lebih dari sekadar memikirkan kembali alat, dll. Jika ini terjadi, saya akan mulai dengan Panduan Arsitektur Sistem Mac OS X (dasar) Apple, kemudian beralih ke Memulai Mac OS X, yang akan memberi Anda gambaran umum yang cukup untuk memulai.

Tidak jelas dari pertanyaan Anda apa yang ingin Anda lakukan dengan pemrograman Anda, tetapi jika Anda memutuskan untuk melanjutkan pengembangan Cocoa/OS X, saya merekomendasikan Pemrograman Kakao untuk Mac OS X oleh Aaron Hillegass.

Setelah berkonversi dari Windows ke Mac OS X sekitar lima tahun yang lalu, saya sering mengalami hal yang sama. Saya tidak bisa menjadi produktif di Windows (seproduktif mungkin) seperti di Mac OS X.

Sejujurnya, ada banyak perbedaan kecil antara Mac OS X dan Windows. Saya menemukan alasan terbesar bagi orang-orang yang berpikiran seperti ini (biasanya hanya gamer dan pengembang) adalah karena mereka mencoba menggunakan Mac sebagai mesin Windows. Anda perlu belajar menerima bahwa Anda perlu menggunakan tombol perintah dan bukan tombol kontrol, dll.

Sepertinya Anda menggunakan Mac karena terpaksa, bukan sesuai keinginan Anda. Ini benar-benar jauh lebih baik daripada Windows setelah Anda terbiasa.

Saya rasa banyak pemrogram Windows yang menggunakan Mac dan tidak mencoba mempelajarinya dengan benar karena mereka merasa berpuas diri, berpikir bahwa mereka mengetahui segalanya karena mereka telah "menggunakan Windows sepanjang hidup mereka". Saya rasa begitu Anda menemukan Spotlight, Expose, "Pintasan Keyboard Mac OS X", dll. Anda akan menemukan bahwa Anda sendiri JAUH lebih produktif daripada sebelumnya di Windows....dan ini adalah OS yang sangat menyenangkan untuk digunakan.

Lihat beberapa aplikasi Mac terbaik yang bisa Anda dapatkan dan. Anda juga dapat mencari "100 Aplikasi Mac Teratas".

Selain itu, saya perhatikan Anda mencoba menyiapkan beberapa jenis server web secara langsung di Mac OS X. Ia hadir dengan satu, tetapi jika Anda ingin menambahkan MySQL dan beberapa ekstensi lainnya, saya tidak akan menggunakan rute MacPorts. Dapatkan VMWare Fusion atau VirtualBox (open source) dan jalankan server di mesin virtual. Jauh lebih bersih. Saya memiliki VM FreeBSD subversion/trac yang menangani kontrol versi lokal saya.

Saya ingin menambahkan bahwa jika saat ini Anda tidak menggunakan Xcode, Anda harus mempelajarinya dan menggunakannya sesegera mungkin. Ini adalah IDE yang jauh lebih bagus untuk digunakan daripada Visual Studio dan akan membuat hidup Anda lebih mudah.

Jangan lupa bahwa meskipun Anda mungkin telah menghabiskan waktu bertahun-tahun di situs bantuan Windows, Anda harus melakukan hal yang sama di Mac. Kapan pun Anda mengalami masalah saat menggunakan Mac, ajukan pertanyaan ServerFault. Kami semua dengan senang hati membantu Anda.

Saya memiliki situasi yang sama seperti Anda. Saya menggunakan Windows untuk pengembangan dan membeli MBP untuk rumah sekitar setahun yang lalu (ketika saya pindah ke kantor). Saya mengalami kesulitan menyelesaikan pekerjaan nyata pada MBP saya. Entah bagaimana saya terbiasa dengan lingkungan Windows dengan dua layar. Tapi jangan biarkan hal itu menghentikan Anda. Beberapa program yang saya sarankan Anda dapatkan adalah sebagai berikut:

  • Transfer - Klien ftp yang bagus
  • MAMP - menjalankan server web hampir secara langsung. Bagus untuk pengembangan dasar.
  • Quicksilver - membantu Anda menemukan aplikasi dengan cepat.
  • Spasi beserta gestur (Sesuaikan gestur Anda untuk berpindah dari satu layar ke layar lainnya, saya menggunakan tiga jari, licin).
  • Rombongan - untuk email
  • Terminal - untuk ssh (alternatif dempul) (termasuk)
  • Dreamweaver/BBedit/Textmate (semuanya lumayan bagus, tapi saya suka editplus di windows, bukan penggemar IDE).

Saya kira pertanyaan Anda bukan tentang mempelajari COCOA, tetapi tentang penggunaan MAC dengan lebih efisien. Nah, alat-alat di atas dapat membantu Anda.

Sayangnya, pertanyaan Anda tidak begitu jelas mengenai apa yang sebenarnya Anda inginkan.

Jika Anda ingin menulis sesuatu lintas platform, akan sangat berguna jika memiliki mesin virtual untuk pengujian. Meskipun di Linux saya selalu menggunakan VirtualBox, ini juga berfungsi di OS X.

Kata

Ingatlah: “Pada mulanya adalah Firman..." Inilah tepatnya hal itu. Dalam rangkaian artikel ini kami akan mencoba memahami dan menjelaskan bagaimana Anda dapat memprogram di bawah ini Mac OS X apa yang layak dilakukan, apa yang tidak layak dilakukan. Nah, mengapa ini perlu? Lagipula, masih banyak sistem lain.

Argumen...

Setiap sistem operasi memiliki argumennya masing-masing. Dan seringkali pemrograman untuk salah satu sistem bukanlah soal pilihan atau preferensi, tetapi bagian dari spesifikasi teknis. Dalam hal ini, cukup sulit untuk membantahnya (secara wajar). Dan mungkin hanya Mac OS X(dan komputer pada umumnya Apel) Setidaknya kita bisa membela diri dalam perselisihan mengenai tempat kerja ini.

Mari kita memprogram apa pun. Misalnya untuk web. Dalam hal ini, paling sering kami bekerja sama Apache/MySQL/P(HP/Perl/Python). Tidak ada masalah bagi siapa pun di sini sistem operasi. Tapi kemudian Anda perlu memeriksa bagaimana segala sesuatunya terlihat secara visual di browser. Dan semua sistem dikecewakan oleh ketidakmungkinan peluncuran (legal). Mac OS X untuk memeriksa bagaimana situs akan bekerja Safari. Namun sebaliknya - silakan, sebanyak yang Anda suka. Dalam tiga versi.

Oke, meskipun kita perlu mengembangkan sesuatu yang khusus untuk itu Linux/Windows. Nampaknya dalam hal ini Anda pasti perlu memilih platform yang tepat, sesuai sistem operasi. Tapi tunggu, kenapa? Di mesin virtual, sistem ini bekerja dengan sangat baik. Pada saat yang sama, dimungkinkan untuk meniru jaringan secara lokal (menjalankan server dalam satu jaringan V.M., klien ke yang lain), ambil snapshot (simpan status V.M. pada titik waktu tertentu untuk rollback berikutnya) dan seterusnya.

Dan yang terakhir, tidak ada yang melarang Anda untuk memasang sendiri Linux atau jendela(atau keduanya sekaligus) ke Mac. Hal sebaliknya tidak dapat dilakukan. Dan begitu saja - dengan mudah, jika perlu.

Apakah ada kerugian yang beralasan pada Mac? Ya, sudah. Permusuhan patologis. Beberapa orang memerlukan sesuatu yang spesifik. Misalnya, kemampuan penyesuaian . Atau maksimalkan jendela dengan mengklik dua kali pada bilah judul. Itu yang Anda butuhkan dan hanya itu. Kalau begitu MacOS X sangat dikontraindikasikan; dalam hal ini, hanya emosi negatif yang keluar.

dan fakta...

Dan faktanya sederhana. Semakin umum di konferensi pengembang MacBook Dan MacBook Pro. Presentasi diadakan di sana, prototipe pengembangan dan rilis final diperlihatkan.

Mac telah memasuki kehidupan para pengembang dengan cukup dekat. Dan di beberapa tempat mereka menaklukkannya begitu saja. Misalnya, Jawa perkembangan. Di konferensi tersebut JavaOne 60 persen dari semua komputer adalah laptop perusahaan Apel.

Baiklah, cukup liriknya. Mari kita lihat apa yang sebenarnya disediakannya Apel untuk pemrograman dan betapa nyamannya mengatur semuanya untuk menggunakannya.

Beri aku dua!

Ada dua hal sederhana yang tidak selalu terlihat jelas dan tidak selalu mudah dipahami oleh pengembang yang berbeda. Terutama mereka yang menciptakan produk non-final (Buku Catatan) dan platform bagi orang lain (1C).

Pertama, untuk membuat platform, Anda perlu menjalankan sesuatu di dalamnya. Artinya, agar pemrogram pihak ketiga bisa membuat program untuk itu. Mari kita ingat keributan apa yang terjadi SDK iPhone... Tentu saja, hampir tidak pernah terjadi sebelumnya SDK tidak diberikan begitu saja. Dan hampir tidak pernah kualitasnya seperti itu. Atau misalnya saat dikembangkan Sony Playstation 3, DevKit(alat pengembang, Perangkat Pengembang) sudah siap untuk itu jauh lebih awal dari konsol itu sendiri. Sehingga pada saat konsol tersebut dirilis, setidaknya sudah ada beberapa game yang bisa muncul. Itu sebabnya alat itu penting. Ini sangatlah penting. Dan masuk Apel Hal ini dipahami dengan baik. Mereka memberikannya secara gratis (setiap Mac dilengkapi dengan disk OS dan SDK), mereka sangat aktif mengembangkannya.

Kedua, membuat platform besar membutuhkan banyak pekerjaan bagi banyak orang (menggunakan Mac yang sama). Orangnya berbeda-beda, dan alatnya harus bervariasi. Untuk tujuan ini, dengan Mac OS X Secara tradisional, beberapa bahasa skrip disediakan, sudah dikonfigurasi untuk berfungsi. Sebenarnya, Mac OSX- satu-satunya OS (sekarang mulai bermunculan Linux), di mana ia awalnya berdiri Jawa. Oleh karena itu, untuk memulai pemrograman di bawah Mac OSX, tidak perlu mendownload dan menginstal, misalnya, ular piton jika Anda ingin menulis skrip di atasnya. Duduk saja dan tulis - sudah ada, sudah dikonfigurasi.

Untuk dilanjutkan…