Mac os üçün proqramlaşdırma proqramları. Windows proqramçısı Mac OS X-də necə kifayət qədər məhsuldar ola bilər? Tərtibatçılar artıq Swift-in heyrətamiz xüsusiyyətlərindən həzz alırlar

Mac os üçün proqramlaşdırma proqramları.  Windows proqramçısı Mac OS X-də necə kifayət qədər məhsuldar ola bilər?  Tərtibatçılar artıq Swift-in heyrətamiz xüsusiyyətlərindən həzz alırlar
Mac os üçün proqramlaşdırma proqramları. Windows proqramçısı Mac OS X-də necə kifayət qədər məhsuldar ola bilər? Tərtibatçılar artıq Swift-in heyrətamiz xüsusiyyətlərindən həzz alırlar

Söz

Unutmayın: “Əvvəlcə Söz var idi..." Bu, məhz budur. Bu məqalələr silsiləsində biz başa düşməyə və necə proqramlaşdıra biləcəyinizi təsvir etməyə çalışacağıq Mac OS X nə etməyə dəyər, nə etməyə dəyməz. Yaxşı, bu niyə lazımdır? Axı, bir çox başqa sistemlər var.

Arqumentlər...

Hər bir əməliyyat sisteminin öz arqumentləri var. Və tez-tez sistemlərdən biri üçün proqramlaşdırma seçim və ya üstünlük məsələsi deyil, texniki spesifikasiyanın bir hissəsidir. Bu halda mübahisə etmək kifayət qədər çətindir (ağlabatan). Və yəqin ki, yalnız Mac OS X(və ümumiyyətlə kompüterlər Alma)İş yeri ilə bağlı bu mübahisədə heç olmasa bir şəkildə özümüzü müdafiə edə bilərik.

Nə olursa olsun proqramlaşdıraq. Məsələn, veb üçün. Bu vəziyyətdə, ən çox onunla işləyirik Apache/MySQL/P(HP/Perl/Python). Burada heç kim üçün problem yoxdur ƏS. Ancaq sonra brauzerlərdə hər şeyin vizual olaraq necə göründüyünü yoxlamaq lazımdır. Və bütün sistemlər (hüquqi) işə salınmanın qeyri-mümkünlüyü ilə nəticələnir Mac OS X saytın necə işləyəcəyini yoxlamaq üçün Safari. Amma əksinə - xahiş edirəm, istədiyiniz qədər. Üç versiyada.

Tamam, biz xüsusi olaraq bir şey inkişaf etdirməli olsaq belə Linux/Windows. Belə görünür ki, bu halda mütləq uyğun platforma, uyğun olanı seçmək lazımdır ƏS. Amma gözləyin, niyə? Virtual maşınlarda bu sistemlər mükəmməl işləyir. Eyni zamanda, bir şəbəkəni yerli olaraq təqlid etmək mümkündür (birində bir server işə salın V.M., müştərini digərinə), anlıq görüntülər çəkin (vəziyyəti yadda saxlayın V.M. sonradan geri çəkilmə üçün müəyyən bir vaxtda) və s.

Və nəhayət, heç kim sizə özünüzü qoymağı qadağan etmir Linux və ya Windows(və ya hər ikisi birdən) üçün Makintoş. Əksini etmək olmaz. Və eynilə - lazım olduqda asanlıqla.

Mac üçün əsaslandırılmış çatışmazlıqlar varmı? Bəli, məndə var. Patoloji düşmənçilik. Bəzi insanlar konkret bir şeyə ehtiyac duyurlar. Məsələn, fərdiləşdirmə qabiliyyəti . Və ya başlıq çubuğuna iki dəfə klikləməklə pəncərəni böyüdün. Bu sizə lazım olan hər şeydir və budur. Bu halda MacOS X bu vəziyyətdə ciddi şəkildə kontrendikedir, mənfi duyğulardan başqa heç bir şey çıxmır;

və faktlar...

Və faktlar sadədir. Tərtibatçı konfranslarında getdikcə daha çox yayılmışdır MacBooksMacBook Pro. Orada təqdimatlar keçirilir, inkişafların prototipləri və yekun buraxılışlar nümayiş etdirilir.

Mac-lər tərtibatçıların həyatına olduqca yaxından daxil oldu. Bəzi yerlərdə isə sadəcə onları fəth etdilər. Misal üçün, Java inkişaf. Konfransda JavaOne Bütün kompüterlərin 60 faizi şirkət noutbuklarıdır alma.

Yaxşı, sözlər kifayətdir. Gəlin görək əslində nə təmin edir alma proqramlaşdırma üçün və ondan istifadə etmək üçün hər şeyi qurmaq nə qədər rahatdır.

Mənə iki ver!

Həmişə aydın olmayan və müxtəlif tərtibatçılar tərəfindən həmişə asanlıqla başa düşülməyən iki sadə şey var. Xüsusilə qeyri-son məhsul yaradanlar (Notebook) və başqaları üçün platformadır (1C).

Birincisi, platforma yaratmaq üçün onun üzərində işləyən bir şey olmalıdır. Yəni üçüncü tərəf proqramçıları bunun üçün proqramlar yarada bilsinlər. Nə təlaşın olduğunu xatırlayaq iPhone SDK...Əlbəttə, demək olar ki, heç vaxt SDK belə verilmədi. Və demək olar ki, heç vaxt belə keyfiyyətli olmamışdır. Və ya, məsələn, inkişaf etdirildiyi zaman Sony Playstation 3, DevKit(geliştirici alətləri, Developer Toolbar) konsolun özündən xeyli əvvəl buna hazır idi. Beləliklə, konsol buraxılan zaman ən azı bir neçə oyun görünə bilər. Buna görə alətlər vacibdir. Bu son dərəcə vacibdir. Və içində alma Bu yaxşı başa düşülür. Onu pulsuz verirlər (istənilən Mac əməliyyat sistemi diski və SDK), onlar bunu çox fəal şəkildə inkişaf etdirirlər.

İkincisi, böyük bir platforma yaratmaq bir çox insan üçün çox işdir (eyni Mac-lardan istifadə etməklə). İnsanlar fərqlidir və alətlər müxtəlif olmalıdır. Bu məqsədlə, ilə Mac OS XƏnənəvi olaraq, artıq iş üçün konfiqurasiya edilmiş bir neçə skript dili təmin edilir. Əslində, Mac OS X - yeganə OS (indi onlar görünməyə başlayır Linux), ilkin olaraq hansı yerdədir Java. Bu səbəbdən proqramlaşdırmaya başlamaq üçün altında Mac OS X, yükləməyə və quraşdırmaya ehtiyac yoxdur, məsələn, Python bunun üzərinə skript yazmaq istəyirsinizsə. Sadəcə oturun və yazın - o, artıq var, artıq konfiqurasiya olunub.

Ardı var…

bu mövzuda sizə rəsmi SDK-dan istifadə edərək iPhone üçün sadə bir proqram yazmağı göstərəcəyəm. Onu əldə etmək asandır, sizə lazımdır:
1. Intel əsaslı Mac (baxmayaraq ki, o, PowerPC-də də işləyir, lakin bir az məşğul olduqdan sonra)
2. iPhone SDK. Mən beta 2-də yazacam. Siz developer.apple.com saytında qeydiyyatdan keçməklə ən son versiyanı əldə edə bilərsiniz. Beta 2 torrentlərdə tapıla bilər

SalamHabr

Moskvanı çox sıxmamaq üçün ən sadə şeyi edəcəyik: proqram sadəcə Habr loqosunu göstərəcək. XCode-u açın (tələb olunur 32-bit rejimi) və yeni Cocoa Touch tətbiqi yaradın:

Gəlin onu HelloHabr adlandıraq və masaüstünə qeyd edək.

Layihələr yaratmaq ustası artıq bunu bizim üçün edib. main.m-in məzmununa baxaq:
#import

Int main(int argc, char *argv)
{
NSAutoreleasePool * hovuz = [init];
//iPhone-da zibil kolleksiyasından istifadə edə bilməyəcəyiniz üçün həyatı asanlaşdırmaq üçün avtoreliz hovuzundan istifadə edirik
int retVal = UIApplicationMain(argc, argv, sıfır, @"HelloHabrAppDelegate");
//tətbiqi işə salmaq üçün bu funksiyanı çağırmalısınız. @"HelloHabrAppDelegate" - nəzarətin ötürüləcəyi sinif
;
qaytarılması retVal;
}

İndi HelloHabrAppDelegate.h-ə nəzər salaq:
#import

Və HelloHabrAppDelegate.m saytında:
#import "HelloHabrAppDelegate.h"
#import "MyView.h"

@tətbiq HelloHabrAppDelegate
//bu direktivlər o deməkdir ki, kompilyasiya zamanı .. vasitəsilə zəng etmək əvəzinə, getters və setters daxil edin
sintez pəncərəsi;
contentView sintezi;

// UIApplication-dan təyin edilmiş funksiya
- (etibarsız) tətbiqiDidFinishLaunching:(UIApplication *)tətbiq (
// Əsas pəncərəni yaradın
self.window = [[ initWithFrame:[ sərhədlər]] avtoreliz];
// contentView yaradın
self.contentView = [[ initWithFrame:[ applicationFrame]] autorelease];
//contetntView-imizi əsas pəncərəyə əlavə edin ki, görünsün
;
// əsas pəncərəni görünən etmək
;
}

- (boş)dealloc (;
;
;
}

Kiçik aparat hissəsi tamamlandı, tətbiqi yazmağa başlayaq. Habr loqosunu proqram qovluğunda saxlayın. Sonra onu XCode pəncərəsində qovluqdan layihəmizin Resurslar qovluğuna sürükləyin:

İndi MyView sinfinə “UIImageView *” tipli yeni “habrView” sahəsi əlavə edək, yəni. MyView.h belə görünəcək:
#import

İndi MyView sinfində init və dealloc prosedurlarını təyin edək:
#import "MyView.h"

@MyView tətbiqi
- (id) initWithFrame:(CGRect)frame (əgər(self = ) (
//fon rəngi - qara
];
//habr loqosunun təsviri ilə yeni obyekt yaradın
UIImage *şəkil = ;
//loqonu göstərəcək komponent yaradın
self->habrView = [ initWithFrame:CGRectMake(0, 0, .width, .height)];
;
];

;
//forma habr loqosu ekran komponenti əlavə edin
;
}
özünə qayıtmaq;
}

- (boş) dealloc (;
;
}
son

Hamısı. Biz tərtib edirik, qaçırıq və istədiyimizi alırıq:

İndi tənbəllər üçün proqramlar yaratmaq üsulu. Dashcode iPhone və iPod Touch üçün veb proqramlar yarada bilər. Dashcode açın və şablon olaraq RSS seçin. Səhifə Atributları sekmesine keçin, Səhifə Başlığını təyin edin: “Harbrahabr RSS”, Lent URL: “feed://habrahabr.ru/rss/main/”. Sonra "Harbrahabr RSS" sekmesine keçin (dizayner açılacaq) və "Mənim RSS Lentim" yazısını "Habrahabr RSS Feed" olaraq dəyişdirin:

Run düyməsini basın və Habr-ın RSS oxuyucusunu əldə edin:

Əsasən hər şey. Şərhlərdə rəylər, arzular, təkliflər gözləyirəm

Yeniləmə: Formatlaşdırmanı bir az tənzimlədim, kod daha yaxşı oxunur, amma idealdan uzaqdır

Asanlıqla gördüyünüz kimi, bu, sadəcə, standart bir "stub"dur. Onun vəzifəsi funksiya tərəfindən yerinə yetirilən tətbiqi düzgün işə salmaqdır NSApplicationMain. Bu başlatma (bütün proqramlar üçün ümumi olan) sinfin NSApp obyektinin yaradılmasını ehtiva edir NSApplication(daha doğrusu, NSApp bu obyektə işarə edir).

NSApplication sinif obyektinin əsas vəzifələrindən biri əsası yükləməkdir uc -fayl (əslində proqramda birdən çox ola bilər xib -fayl, lakin yalnız bir, adətən MainMenu.xib əsasdır və proqram başlayanda avtomatik yüklənir).

Bu halda, burada göstərilən obyektlərin bütün ağacı və onların arasındakı əlaqələr xib -fayl. Əvvəlki məqalədə qeyd edildiyi kimi, əsasın sahibi məhz NSApp olacaq xib -fayl.

Mac OS X üçün proqramlaşdırmanın maraqlı xüsusiyyətlərindən biri, NSWindow və NSApplication əsasında yeni siniflərin olduqca nadir yaradılmasıdır - demək olar ki, həmişə bütün lazımi hərəkətlərə nümayəndə heyəti və model vasitəsilə nail olmaq olar. Müşahidəçi .

GUI proqramlarının yazılması üçün əsas gəlir Kiçik söhbət"bir konsepsiya MVC (Model, Görünüş, Nəzarətçi .

Bu konsepsiyaya görə (təəccüblü deyil ki, Ruby on Rails veb-səhifələri qurarkən eyni konsepsiyadan istifadə edir) məlumatların nümayişinə xidmət edən obyektlər ayrılır ( baxışlar), verilənləri təmsil edən obyektlər ( modellər) və istifadəçi ilə qarşılıqlı əlaqəyə cavabdeh olan obyektlər ( nəzarətçilər).

Mac OS X-də artıq verilənləri göstərmək üçün nəzərdə tutulmuş çoxlu sayda hazır obyektlər var (onlar adətən sinifdən miras alınırlar) NSView). Kifayət qədər sadə tətbiqlərdə xüsusi bir model yaratmağa ehtiyac yoxdur (böyük tətbiqlər üçün bu çox əlverişli olsa da - bütün biznes məntiqi modelə yerləşdirilir və onun hüdudlarından kənara çıxmır).

Buna görə də, sadə proqramlar adətən hazır obyektlərdən istifadə edir baxışlar, lakin biz istifadəçi ilə qarşılıqlı əlaqədən məsul olan öz nəzarətçi obyektimizi yazırıq. Çox vaxt belə bir nəzarətçi birbaşa miras alınır NSView və sistemin güclü nümayəndə heyəti və hadisə bildiriş imkanlarından istifadə edir.

Onun üçün istifadəçi interfeysi yaradaraq proqram yaratmağa başlayaq. Bunun üçün zəng edək İnterfeys Qurucusu layihə pəncərəsinin sağ tərəfindəki fayllar siyahısından MainMenu.xib(İngilis dili) faylına iki dəfə klikləyin. Bu işə başlayacaq İnterfeys Qurucusu, dərhal layihəmizdən xib faylını açın.

Başladıqdan dərhal sonra İnterfeys Qurucusu-və bütün lazımsız pəncərələri siləcəyik. Sonra, müfəttiş pəncərəsini açın (menyu əmrindən istifadə edərək Alətlər/Məlumatı göstər) və pəncərə xüsusiyyətlərində Kalkulyator başlığını təyin edin və "Böyüt (və ölçüsünü dəyişdir)" elementinin seçimini ləğv edin.

Şəkil 4. Kalkulyator pəncərəsinin qurulması.

Mətn daxiletmə sahəsini pəncərənin ən yuxarı hissəsində yerləşdirərək komponentlər palitrasından sürükləyək. Sonra, düyməni sürükləyin və pəncərənin aşağı sol küncünə qoyun (şək. 5.). Düymənin mətnini "0" və onun etiketini (sahə Tag:) 0-a və ölçüsünü bir qədər azaldın.

Şəkil 5. Komponentləri düzün.

Bundan sonra menyudan seçin Layout komanda Obyektləri daxil edin və bunun üçün elementi seçin Matris. Nəticədə, verilmiş sinfin komponentlərinin düzbucaqlı matrisi olan NSMatrix sinfinin obyekti yaradılacaq.

Nəzərə alın ki, indi müfəttiş pəncərəsi NSMatrix sinif obyektinin xüsusiyyətlərini əks etdirir.

Şəkil 6. Düymələr blokunun yaradılması.

Şəkil 7. Düymə matrisinin xassələri.

Bu şəkildə 3x4 ölçülü düymələr cədvəlini quraq.

Şəkil 8. Mətn sahəsinin qurulması.

Gəlin müfəttişdən istifadə edərək giriş sahəsini konfiqurasiya edək - seçimi "Düzenlenebilir" bəndindən çıxarın - bu, bu sahəyə mətni açıq şəkildə daxil etməyə imkan verməyəcək - və mətnin düzülməsini sağa qoyun (Şəkil 9).

Şəkil 9. Mətn sahəsinin atributlarının təyin edilməsi.

Bütün düymələri növbə ilə bu şəkildə seçərək, onların parametrlərini aşağıdakı kimi konfiqurasiya edəcəyik - rəqəmlərdən birini mətn kimi təyin edəcəyik (şəkil 10-da olduğu kimi görünməsi üçün) və hər bir düymə üçün etiket olaraq göstərəcəyik. müvafiq ədədin dəyəri (şək. 11). Bundan əlavə, biz nəticədə düymələr matrisini defolt Siyahı əvəzinə Mode Vurgulamaya təyin edəcəyik.

Şəkil 10. Matrisdən ayrıca düymənin seçilməsi.

Şəkil 11. Matrisdən fərdi düymənin atributlarının təyin edilməsi.

Biz dərhal sözdə istifadə edərək klaviatura dəstəyi əlavə edəcəyik əsas ekvivalent"s, əvvəlki məqalədə müzakirə etdiyimiz. Bunun üçün sahəyə klikləyin Əsas ekviv.(bundan sonra sahənin ətrafında mavi çərçivə görünəcək) kimi seçmək istədiyimiz düyməni vurun əsas ekvivalent“A.

Teq istənilən vizual elementə təyin edilə bilən nömrədir (NSView-dən miras qalmışdır). Bəzi hallarda teqlərdən istifadə proqramçının həyatını xeyli asanlaşdıra bilər. Beləliklə, bu halda biz bütün rəqəmsal düymələri eyni mesajın göndərilməsi ilə əlaqələndirəcəyik ( rəqəm:) və mesaj idarəedicisi (nəzarətçidə) müvafiq rəqəmi əldə etmək üçün sadəcə mesajı göndərən obyektdən etiket tələb edəcək.

Növbəti addım iki əlavə düyməni (son cərgədə ən kənar düymələr) çıxarmaqdır ki, bizdə tam olaraq on düymə (həmçinin rəqəmlər) olsun.

Bunu etmək üçün, matrisdə və müfəttiş pəncərəsində sol alt düyməni iki dəfə vurun, "Enabled" maddəsini seçin və "Şəffaf" maddəsini seçin.

Bu hərəkətlər nəticəsində aşağı sol düymə görünməz hala gələcək. Eynilə, aşağı sağ düyməni görünməz edəcəyik.

Şəkil 12. Rəqəm düymələri və C və CA düymələri olan kalkulyator pəncərəsi.

Növbəti addımımız nəzarətçi sinfi yaratmaqdır. Bunu etmək üçün obyekt palitrasında Kitabxana bölməsini açaq Obyektlər və Nəzarətçilər və NSObject sinfinin obyekti olan mavi kubu Main Menu.xib (İngilis dili) pəncərəsinə sürükləyin (Şəkil 13).

Şəkil 13. NSObject sinfi əsasında sinfin yaradılması

Müfəttiş pəncərəsində bu obyekti seçərək əlfəcin açın Şəxsiyyət(sondan əvvəlki). Sonrakı sahədə Sinif sinif adını dəyişdirin NSObject haqqında CalcController.

Şəkil 14. CalcController sinfinin xassələri.

Sonrakı düymələrdən istifadə edərək + bölmələrdə Sinif hərəkətləriClass Outlets sinfimizə əlavə edək CalcController bir çıxış Adı ilə mətn, öz sinfini NSTextField və aşağıdakı üsullara təyin edin - (bölmə Sinif hərəkətləri) - əməliyyat:, rəqəm:, aydın:hamısını sil, hamısını təmizlə:.

Bu üsullardan birincisi ( əməliyyat:) bəzi arifmetik əməliyyata uyğun düymə basıldıqda çağırılacaq. Metod rəqəm: rəqəmli düymələrdən hər hansı biri basıldıqda çağırılacaq, üsulların məqsədi aydın:hamısını sil, hamısını təmizlə: adından aydındır.

Hansı olduğunu soruşduqdan sonra çıxış"s və bizə lazım olan üsullar, menyu əmrindən istifadə edərək Sinif Fayllarını Fayl/Yaz... CalcController.h və CalcController.m fayllarını yaradaq.

Şəkil 15. CalcController sinfi üçün faylların yaradılması.

Hər iki faylın yaradılmalı olduğunu və dərhal Kalkulyator layihəsinə əlavə edilməli olduğunu göstərməli olduğunuz bir dialoq qutusu görünəcəkdir.

Şəkil 16. Yaradılmış faylların layihəyə əlavə edilməsi.

Bundan sonra qayıdacağıq XCode və CalcController.h və CalcController.m fayllarının həqiqətən layihəyə əlavə olunduğundan əmin olun.

CalcController.h faylını açaq - bunun üçün ya bir dəfə klikləməklə layihə pəncərəsinin aşağı hissəsindəki faylı açmaq olar (Şəkil 17), ya da faylı ayrıca pəncərədə açmaq üçün iki dəfə klikləmək olar.

Şəkil 17. CalcController.h faylı açıq olan layihə pəncərəsi.

Qeyd edək ki, CalcController.h faylında CalcController sinfinin biz onu müəyyən etdiyimiz kimi tam təsviri var. İnterfeys Qurucusu"e.

CalcController.h faylını aşağıdakı siyahıda göstərildiyi kimi dəyişdirək.

Mən bir neçə aydır evdə MacBook Pro-dan istifadə edirəm və mənə daha yaxşı Mac proqramçısı olmağa kömək edəcək yaxşı kitab və ya bələdçinin olub-olmaması ilə maraqlanırdım. Ola bilsin ki, Linux Proqramlaşdırma ilə Başlamaq üçün Mac ekvivalenti. Qeyd. Mən Mac proqramını necə proqramlaşdırmaq barədə mənbə axtarmıram, bunun əvəzinə ümumi inkişaf mühiti üçün Mac-dan istifadə etmək üçün daha ümumi bələdçi axtarıram.

Bir fon olaraq, mən gün ərzində Windows proqramçısıyam. Mən də illər ərzində bəzi Linux və BSD işləri görmüşəm, xüsusən məktəbdə socket proqramlaşdırma, qrafika, quraşdırma tipli şeylər etmək. Evdə Java, Scala, PHP və s. Mac-da.

İndiyə qədər Eclipse, QuickSilver və TextMate istifadə etmişəm. VMWare Fusion, XCode və NetBeans konfiqurasiya olunub, lakin mən onlardan istifadə etmirəm. DVI KVM açarı real klaviatura, trekbol və monitora qoşulur. Bu yaxınlarda MacPorts ilə gec döyüşə qədər qaldım və mənə x86_64 lazım olduğunu başa düşdüm. Qarşılaşdığım ən böyük problem PHP qurmaqdır. Bilmirəm niyə MySQL və GD kitabxanası ilə gəlmirlər. Nəhayət, bunun Googling olduğunu başa düşdüm və mənbədən uzantılar qurdum. Mənə elə gəlir ki, bütün arxitekturanın necə işlədiyi kimi qeydi almamışam və ya Mac proqramçısı olmaq haqqında əsas təlimatı oxumamışam. Windows proqramçısı Mac OS X-də necə kifayət qədər məhsuldar ola bilər?

Dəyişmək. İnkişaf etdirmək istədiyim xüsusi proqram növü mənim fikrimcə heç bir əhəmiyyət kəsb etmir. Bu Java, Scala, qeyd etdiyim kimi PHP və ya Kakao, C++ və ya hər hansı bir proqram ola bilər.

Mən konkret kitab, resurs, daha səmərəli Mac proqramçısı olmaq üçün məsləhətlər axtarıram, tercihen "XYZ quraşdırmaq"dan başqa bir şey.

6 cavab

Görünür, sizə alətlərin yenidən nəzərdən keçirilməsindən daha çox Mac OS X-in sistem səviyyəsində necə işləməsi haqqında ümumi məlumat lazımdır. Əgər bu baş verərsə, mən Apple-ın (əsas) Mac OS X Sistem Memarlığı Bələdçisi ilə başlayacağam, sonra Mac OS X ilə işə başlayacağam, bu da sizə başlamaq üçün kifayət qədər ümumi məlumat verəcəkdir.

Sualınızdan proqramlaşdırma ilə nə etmək niyyətində olduğunuz aydın deyil, lakin siz Cocoa/OS X inkişafını davam etdirmək qərarına gəlsəniz, Aaron Hillegass tərəfindən Mac OS X üçün Kakao Proqramlaşdırmasını tövsiyə edirəm.

Təxminən beş il əvvəl Windows-dan Mac OS X-ə keçdikdən sonra özümü tez-tez eyni damarda tapıram. Mən sadəcə Windows-da (bacardığım qədər məhsuldar) Mac OS X-də olduğu kimi məhsuldar ola bilmirəm.

Düzünü desəm, Mac OS X və Windows arasında bir çox kiçik fərqlər var. Mən bu şəkildə düşünən insanların (adətən yalnız oyunçular və tərtibatçılar) ən böyük səbəbini Mac-dan Windows maşını kimi istifadə etməyə çalışmalarında görürəm. Qəbul etməyi öyrənməlisiniz ki, idarəetmə düyməsini deyil, əmr düyməsini istifadə etməlisiniz və s.

Deyəsən Mac istifadə edirsiniz, çünki istədiyinizdən fərqli olaraq bunu etməlisiniz. Siz ona öyrəşdikdən sonra həqiqətən Windows-dan daha yaxşıdır.

Düşünürəm ki, bir çox Windows proqramçıları Mac-a gəlirlər və onu düzgün öyrənməyə çalışmırlar, çünki onlar özündən razılaşırlar, “həyatları boyu Windows-dan istifadə etdikləri üçün” hər şeyi bildiklərini düşünürlər. Düşünürəm ki, Spotlight, Expose, "Mac OS X Klaviatura Qısayolları" və s. Siz özünüz Windows-da heç vaxt olduğundan daha məhsuldar olduğunuzu görəcəksiniz... və onun istifadəsi həqiqətən əyləncəli ƏS-dir.

Əldə edə biləcəyiniz ən yaxşı Mac proqramlarından bəzilərini yoxlayın və. Siz həmçinin "Ən yaxşı 100 Mac Proqramı" üçün axtarış edə bilərsiniz.

Həmçinin, mən qeyd etdim ki, siz birbaşa Mac OS X-də bir növ veb server qurmağa çalışırsınız. O, biri ilə birlikdə gəlir, lakin siz MySQL və bəzi digər uzantıları əlavə edəcəksinizsə, mən MacPorts marşrutuna getməzdim. VMWare Fusion və ya VirtualBox (açıq mənbə) əldə edin və serveri virtual maşında işlədin. Daha təmiz. Mənim yerli versiyaya nəzarəti idarə edən təxribat/trac FreeBSD VM var.

Əlavə etmək istərdim ki, əgər siz hazırda Xcode-dan istifadə etmirsinizsə, onu mütləq öyrənməli və mümkün qədər tez istifadə etməlisiniz. Bu, Visual Studio-dan istifadə etmək üçün daha gözəl IDE-dir və həyatınızı çox asanlaşdıracaq.

Unutmayın ki, yəqin ki, Windows yardım saytlarında illərlə vaxt sərf etmisinizsə, eyni şeyi Mac-da da az miqdarda etməlisiniz. Mac istifadə edərkən probleminiz olduqda, ServerFault sualını verin. Biz hamımız sizə kömək etməyə hazırıq.

Məndə sizinlə eyni vəziyyət var. Mən inkişaf üçün Windows istifadə edirəm və təxminən bir il əvvəl (ofisə köçəndə) ev üçün MBP aldım. MBP-də real iş görməkdə çox çətinlik çəkirəm. İki ekranlı Windows mühitinə birtəhər öyrəşdim. Ancaq bunun səni dayandırmasına imkan verməyin. Sizə təklif etdiyim bir neçə proqram aşağıdakılardır:

  • Transfer - Yaxşı ftp müştəri
  • MAMP - bir veb serveri demək olar ki, qutudan çıxarır. Əsas inkişaf üçün yaxşıdır.
  • Quicksilver - proqramları tez tapmağa kömək edir.
  • Jestlərlə birlikdə boşluqlar (Bir ekrandan digərinə keçmək üçün jestlərinizi fərdiləşdirin, üç barmaqdan istifadə edirəm, sürüşkəndir).
  • Entourage - e-poçt üçün
  • Terminal - ssh üçün (şpak alternativi) (daxildir)
  • Dreamweaver/BBedit/Textmate (hamısı olduqca layiqli, lakin mən IDE fanatı deyil, Windows-da redaktə plus həvəskarıyam).

Düşünürəm ki, sualınız COCOA öyrənməklə bağlı deyil, MAC-dan daha səmərəli istifadə etməkdir. Yaxşı, yuxarıdakı vasitələr sizə kömək edə bilər.

Təəssüf ki, sualınız əslində nə istədiyinizlə bağlı çox aydın deyil.

Əgər cross-platforma bir şey yazmaq istəyirsinizsə, sınaq üçün virtual maşının olması çox faydalı ola bilər. Linux-da mən həmişə VirtualBox-dan istifadə etmişəm, o, OS X-də də işləyir.

bu mövzuda sizə rəsmi SDK-dan istifadə edərək iPhone üçün sadə bir proqram yazmağı göstərəcəyəm. Onu əldə etmək asandır, sizə lazımdır:
1. Intel əsaslı Mac (baxmayaraq ki, o, PowerPC-də də işləyir, lakin bir az məşğul olduqdan sonra)
2. iPhone SDK. Mən beta 2-də yazacam. Siz developer.apple.com saytında qeydiyyatdan keçməklə ən son versiyanı əldə edə bilərsiniz. Beta 2 torrentlərdə tapıla bilər

SalamHabr

Moskvanı çox sıxmamaq üçün ən sadə şeyi edəcəyik: proqram sadəcə Habr loqosunu göstərəcək. XCode-u açın (tələb olunur 32-bit rejimi) və yeni Cocoa Touch tətbiqi yaradın:

Gəlin onu HelloHabr adlandıraq və masaüstünə qeyd edək.

Layihələr yaratmaq ustası artıq bunu bizim üçün edib. main.m-in məzmununa baxaq:
#import

Int main(int argc, char *argv)
{
NSAutoreleasePool * hovuz = [init];
//iPhone-da zibil kolleksiyasından istifadə edə bilməyəcəyiniz üçün həyatı asanlaşdırmaq üçün avtoreliz hovuzundan istifadə edirik
int retVal = UIApplicationMain(argc, argv, sıfır, @"HelloHabrAppDelegate");
//tətbiqi işə salmaq üçün bu funksiyanı çağırmalısınız. @"HelloHabrAppDelegate" - nəzarətin ötürüləcəyi sinif
;
qaytarılması retVal;
}

İndi HelloHabrAppDelegate.h-ə nəzər salaq:
#import

Və HelloHabrAppDelegate.m saytında:
#import "HelloHabrAppDelegate.h"
#import "MyView.h"

@tətbiq HelloHabrAppDelegate
//bu direktivlər o deməkdir ki, kompilyasiya zamanı .. vasitəsilə zəng etmək əvəzinə, getters və setters daxil edin
pəncərə;
contentView;

// UIApplication-dan təyin edilmiş funksiya
- (etibarsız) tətbiqiDidFinishLaunching:(UIApplication *)tətbiq (
// Əsas pəncərəni yaradın
self.window = [[ initWithFrame:[ sərhədlər]] avtoreliz];
// contentView yaradın
self.contentView = [[ initWithFrame:[ applicationFrame]] autorelease];
//contetntView-imizi əsas pəncərəyə əlavə edin ki, görünsün
;
// əsas pəncərəni görünən etmək
;
}

- (boş)dealloc (;
;
;
}

Kiçik aparat hissəsi tamamlandı, tətbiqi yazmağa başlayaq. Habr loqosunu proqram qovluğunda saxlayın. Sonra onu XCode pəncərəsində qovluqdan layihəmizin Resurslar qovluğuna sürükləyin:

İndi MyView sinfinə “UIImageView *” tipli yeni “habrView” sahəsi əlavə edək, yəni. MyView.h belə görünəcək:
#import

İndi MyView sinfində init və dealloc prosedurlarını təyin edək:
#import "MyView.h"

@MyView tətbiqi
- (id) initWithFrame:(CGRect)frame (əgər(self = ) (
//fon rəngi - qara
];
//habr loqosunun təsviri ilə yeni obyekt yaradın
UIImage *şəkil = ;
//loqonu göstərəcək komponent yaradın
self->habrView = [ initWithFrame:CGRectMake(0, 0, .width, .height)];
;
];

;
//forma habr loqosu ekran komponenti əlavə edin
;
}
özünə qayıtmaq;
}

- (boş) dealloc (;
;
}

Hamısı. Biz tərtib edirik, qaçırıq və istədiyimizi alırıq:

İndi tənbəllər üçün proqramlar yaratmaq üsulu. Dashcode iPhone və iPod Touch üçün veb proqramlar yarada bilər. Dashcode-u açın və şablon olaraq RSS-i seçin. Sonra "Harbrahabr RSS" sekmesine keçin (dizayner açılacaq) və "Mənim RSS Lentim" yazısını "Habrahabr RSS Feed" olaraq dəyişdirin:

Run düyməsini basın və Habr-ın RSS oxuyucusunu əldə edin:

Əsasən hər şey. Şərhlərdə rəylər, arzular, təkliflər gözləyirəm

Yeniləmə: Formatlaşdırmanı bir az tənzimlədim, kod daha yaxşı oxunur, amma idealdan uzaqdır