Bagaimana untuk mencipta program untuk iOS. Cara Membuat Apl iOS yang Berjaya

Pernahkah anda terfikir bagaimana apl iOS dan OS X yang digunakan berjuta-juta pemilik iPhone, iPad dan Mac setiap hari dicipta? Kami tahu bahawa ramai orang telah memikirkan tentang membangunkan program untuk peranti Apple, tetapi pemula, sebagai peraturan, takut akan kesukaran dalam proses pembelajaran dan belajar buku teks sendiri.

Profesion itu sendiri "pembangun aplikasi untuk iOS dan Mac" adalah universal: ia menggabungkan pengetahuan tentang dua bahasa pengaturcaraan - Objektif C dan Swift. Yang pertama ialah bahasa utama, dibina berdasarkan bahasa C dan mempunyai sintaks yang mudah. Tanpa bahasa ini, orang tidak akan diupah untuk bekerja di studio aplikasi mudah alih. Tetapi Swift ialah bahasa yang agak baharu: Apple memperkenalkannya pada 2014, ia disepadukan dengan C dan berjalan lebih pantas daripada Objektif C dan Python, membolehkan anda mencipta sebarang program - kedua-dua permainan dan aplikasi berguna.

Pada masa kini terdapat hanya beberapa pakar yang mengenali Swift, jadi mereka mendapat permintaan yang tinggi di pasaran. Hanya pergi ke mana-mana platform HR untuk melihat gaji purata pemaju iOS - 100 ribu rubel. Pengaturcara yang berpengalaman mempunyai gaji beberapa ratus ribu rubel + pelbagai bonus dari syarikat.

Untuk mendapatkan hasil terbaik dalam masa yang singkat dan latihan amali yang terjamin, anda boleh menggunakan perkhidmatan GeekBrains. Ia termasuk kedua-dua Objektif C dan Swift, yang bermaksud bahawa anda pada dasarnya mendapat dua kepakaran dan bukannya satu. Syarikat menjual pengaturcara iOS pintar seperti kek panas, jadi mereka tidak duduk tanpa kerja walaupun seminggu.

Proses pembelajaran ialah siaran pelajaran dalam talian, jadi anda boleh belajar dari mana-mana sahaja di dunia. Teknologi unik yang dibangunkan khas menjadikan pembelajaran jauh lebih mudah daripada pembelajaran bersemuka. Buat kerja rumah anda, dan jika anda tidak dapat berada di dalam kelas, tontonnya dalam rakaman. Begini rupa pelajaran biasa di GeekBrains:

Mengapa kursus dalam talian? Mereka mempunyai kelebihan yang jelas berbanding universiti dari segi masa yang dihabiskan dan pada masa yang sama memberi peluang untuk memperoleh pengalaman praktikal dan mendapat jaminan keputusan. 7 daripada 10 pelajar perkhidmatan mencari kerja semasa masih belajar, kerana GeekBrains menyediakan latihan amali yang terjamin. Di samping itu, pelajar mendapat pengalaman yang tidak ternilai dalam pembangunan pasukan dan kes portfolio. Tanpa yang terakhir, hampir mustahil untuk mendapatkan pekerjaan sekarang.

Sebagai contoh, ini adalah rupa resume anda selepas latihan.

Pada penghujung bulan lepas, pemaju Richard Felix menerbitkan artikel yang menghiburkan di mana dia cuba menerangkan dengan jelas dan padat yang mungkin cara mencipta aplikasi yang berjaya untuk iOS. Khususnya, beliau berkongsi petua berguna untuk pembangun pemula, pemerhatiannya sendiri dari segi reka bentuk program dan trend terkini dalam App Store.

Richard mengetahui semua selok-belok pembangunan daripada pengalaman peribadi, kerana sejak beberapa tahun lalu dia telah mencipta beberapa aplikasi popular untuk platform mudah alih moden dan web (Are My Sites Up, Stunning, Dispatch dan lain-lain).

Jadi, pada satu ketika dalam hidup anda, anda memutuskan untuk menjadi pembangun dan mencuba tangan anda untuk mencipta apl iOS anda sendiri. Anda takut anda akan menghabiskan banyak masa (dan wang) membangunkan program yang tidak akan digunakan oleh sesiapa pun. Anda bermimpi untuk mencipta aplikasi yang akan dijual secara aktif setahun selepas dikeluarkan, tetapi anda tidak tahu cara melakukannya. Petua yang diterangkan di bawah akan membantu anda mencapai matlamat anda.

Cari idea asal

Pada setiap pembentangan, Apple mengumumkan berjuta-juta jualan peranti iOS dan rekod App Store yang hebat. Berpandukan fakta ini, ramai pembangun pemula tersilap menganggap bahawa mencipta klien e-mel atau editor foto cetek yang lain akan membolehkan mereka memperoleh berjuta-juta dolar (pada pendapat mereka, ini tidak semestinya memerlukan pendakian ke bahagian atas carta gedung aplikasi Apple).

Walau bagaimanapun, walaupun terdapat kelaziman platform iOS, ini adalah salah tanggapan yang besar. Sudah tentu, dalam kes ini anda akan mendapat sedikit wang dan mendapatkan balik proses pembangunan, tetapi untuk benar-benar mencapai bermakna kejayaan, program anda bukan sahaja mesti melaksanakan fungsi yang dinyatakan, tetapi juga mempunyai beberapa jenis ciri asal, sejenis semangat yang akan membezakannya daripada ratusan pesaing dan menarik perhatian terhadap latar belakang umum.

Selidik khalayak sasaran anda

App Store menawarkan sesiapa sahaja harta karun sebenar dalam bentuk carta aplikasi popular, berdasarkan mana anda boleh membuat keputusan mengenai kategori program, perhatikan beberapa perkara untuk diri sendiri dan dapatkan idea yang sangat asli itu.

Pada masa ini, kami boleh membezakan tiga kategori berikut bagi program paling popular di App Store:


  • Aplikasi alternatif untuk program sistem iOS (kalkulator, kalendar, pelanggan e-mel, editor foto, senarai tugas yang dipertingkatkan, dsb.). Mereka popular kerana ramai orang berhadapan dengan batasan alat iPhone/iPad standard dan ingin mengembangkan fungsi peranti mereka. Apple mencipta program untuk orang ramai (ia mudah digunakan dan intuitif), itulah sebabnya pengguna yang lebih maju menderita (jika anda memerlukan lebih banyak ciri, anda perlu menggunakan aplikasi pihak ketiga - dan ini adalah untuk kelebihan kami).

  • Permainan, dan pelbagai daripadanya. Terutamanya yang memaksa anda untuk berkongsi aplikasi dengan rakan dan rakan sekerja, yang jauh lebih berharga daripada sepanduk pengiklanan.

  • Aplikasi dengan bilangan minimum fungsi yang kelihatan pada pandangan pertama jadi asas bahawa ramai pembangun menolak idea sedemikian walaupun pada peringkat memikirkan projek itu. Contoh biasa ialah program yang dipanggil Over, yang membolehkan anda menambah kapsyen elegan pada foto anda. Bagi pengguna lanjutan, Over mungkin kelihatan seperti alat yang agak terhad, tetapi ramai pemula berpuas hati sepenuhnya dengan "editor foto" ini, yang disahkan oleh jualan yang baik. Sungguh mengagumkan bagaimana pelaksanaan yang betul bagi satu fungsi yang diisytiharkan boleh membawa kepada program yang berjaya sepenuhnya.


Jangan cipta semula roda dan kerap kemas kini

Banyak aplikasi iOS yang popular telah mencapai kejayaannya berkat ciri berikut - mereka membenarkan pengguna melakukan beberapa tindakan dengan cepat (mengedit foto, contohnya), tetapi tidak membebankannya dengan fungsi dan butang yang tidak perlu. Tidak perlu mencipta semula roda dan mencipta editor foto dengan fungsi main balik muzik.

Letakkan diri anda pada kedudukan pengguna, cuba fokus pada ciri-ciri yang akan sungguh berguna. Ia sama sekali tidak perlu untuk melaksanakan semua idea anda dalam versi pertama; tinggalkan idea kecil untuk kemas kini aplikasi pada masa hadapan. Selepas program dikeluarkan di App Store, anda akan mempunyai banyak ulasan pengguna, berdasarkan mana anda boleh membuat kesimpulan tentang keperluan untuk melaksanakan fungsi ini atau itu.

Di samping itu, kemas kini aplikasi yang kerap membolehkan produk anda sentiasa didengari, "berkelip" di hadapan mata bakal pembeli di blogosphere.

Lukis ikon berwarna-warni

Ikon yang cantik adalah kunci kejayaan mana-mana aplikasi ( jadi sesiapa? - nota editor). Memegang iPhone atau iPad di tangannya, pengguna sentiasa mahu melihat grafik berkualiti tinggi dan reka bentuk "enak" pada paparannya, yang, seperti yang mereka katakan, menyenangkan mata. Orang ramai akan lebih cenderung untuk memberi perhatian kepada program jika jabatan reka bentuk meluangkan masa dan usaha yang mencukupi untuk mencipta ikon jenama yang menarik. Akhirnya, ini akan membantu apl anda mencapai bahagian atas carta App Store.

Pada tapak khusus seperti

Ramai pembangun baharu atau orang yang hanya berminat dalam pengaturcaraan tidak tahu cara membuat apl iOS dengan cepat dan mudah.

Kami akan menganalisis keseluruhan proses ini langkah demi langkah supaya semua orang boleh membaca bahan ini dan menjalankan pembangunan sendiri.

Langkah satu. Kemukakan idea dan nama

Sudah tentu, dari awal lagi anda perlu menghasilkan idea yang bagus yang boleh menjadi popular. Aplikasi itu hendaklah ringkas, berfungsi dan berguna kepada pengguna. Berikut ialah beberapa petua untuk membantu anda mencari idea yang bagus dan menghidupkannya:

1 Pergi ke AppStore dan lihat program yang dibentangkan di sana. Mungkin sesuatu akan terlintas di fikiran anda.

2 Juga lihat senarai apl anda(dipasang). Berkemungkinan anda tidak menyukai kesemuanya dan ingin menambahkan beberapa fungsi pada sebahagian daripadanya. Ini akan menjadi idea untuk ciptaan anda!

3 Lihat apl rakan anda untuk tujuan yang sama.

Penting! Pada akhir idea anda, anda harus mempunyai pemahaman yang jelas tentang fungsi yang akan dilakukan oleh aplikasi anda.

Dari segi nama, isu ini juga harus dipandang serius. Pertama, lihat paling banyak dan nama mereka. Pergi ke apple.com/ru/itunes/ untuk tujuan ini. Pastikan anda menyemak bahagian percuma dan berbayar.

Pakar menyerlahkan beberapa petua tentang nama yang sepatutnya, dan lebih khusus lagi:

  • panjang kira-kira 10 aksara (tidak lebih, mungkin kurang, tetapi sekali lagi, tidak terlalu banyak);
  • sebaik-baiknya bahasa Inggeris (dengan cara ini, antara muka juga harus mempunyainya untuk mengembangkan khalayak pengguna);
  • dua perkataan dalam tajuk;
  • satu perkataan mesti mencerminkan sepenuhnya tujuan;
  • perkataan kedua mestilah keterangan yang pertama.

Langkah keempat. Pembangunan konsep

Pada langkah pertama, anda telah menerima idea dan nama permohonan masa hadapan. Kini ia berbaloi untuk melakukan sesuatu yang membolehkan anda mula membangun secara langsung. Ia mengenai konsep. Dalam itu Konsep ini termasuk yang berikut:

  • Khalayak sasaran. Pastikan anda memikirkan siapa pengguna anda. Ini boleh menjadi alat yang muda, bertujuan dan biasa dengan alat moden. Sebaliknya, ini boleh menjadi pengguna tua yang jauh dari teknologi. Baki dua komponen konsep akan bergantung pada ini.

  • Berfungsi. Senaraikan dengan jelas semua fungsi yang akan dilaksanakan oleh aplikasi.
  • Reka bentuk. Lakarkan, walaupun pada sekeping kertas, rupa aplikasi itu. Lebih-lebih lagi, anda mesti memahami dengan jelas bagaimana skrin permulaan, apakah butang yang akan ada, dan apa yang akan ada pada halaman tambahan. Juga, tambah butang mengikut senarai fungsi. Juga reka bentuk semua butang.

Sebaik sahaja anda mempunyai semua lakaran, anda boleh mula mengekod!

Langkah kelima. Pengekodan

Sekarang buka Xcode dan jalankan peringkat berikut untuk mencipta perisian pada iOS:

1 Pada skrin Mula, dalam menu di sebelah kiri, ketik "Permohonan"(buka bahagian ini) dan pilih "Permohonan Kosong". klik "Seterusnya". Seterusnya, masukkan butiran anda, dan dalam medan ID pembangun (diberikan oleh Apple) masukkan "contoh", dan dalam medan awalan kelas tentukan "XYZ".

2 Seterusnya, pilih "Fail" dan dalam senarai juntai bawah "Baru". Kemudian tekan berturut-turut "Antaramuka pengguna", "Papan cerita" dan butang "Seterusnya". Dalam menu peranti, pilih dan masukkan dalam medan nama "Utama". Simpan fail ini dalam folder yang sama dengan projek utama anda. Selepas ini, fail Main.storyboard akan muncul dalam pokok projek (di sebelah kiri). Ini, seperti yang anda mungkin sudah faham, ialah perwakilan visual semua skrin program anda. Inilah yang akan anda sunting pada masa hadapan.

3 Kini anda perlu memastikan bahawa apabila anda melancarkan aplikasi, betul-betul skrin yang anda buat dalam Papan Cerita terbuka. Untuk melakukan ini, dalam pepohon folder di sebelah kiri, pilih projek anda secara berurutan, "Sasaran", "Umum", "Maklumat Pengerahan". Kemudian dekat inskripsi "Antara Muka Utama" anda mengambil "Utama", seperti dalam Rajah 8 - inilah yang kami panggil skrin kami pada peringkat sebelumnya.

nasi. 9. Menetapkan skrin yang dibuat sebagai skrin utama dalam Papan Cerita

4 Sekarang, sebenarnya, anda perlu mencipta skrin yang paling utama ini, yang akan dibuka dahulu apabila dimulakan. Untuk melakukan ini, di pokok di sebelah kiri Klik pada "papan cerita" sekali. Tetingkap kosong akan dibuka di tetingkap utama. Di bahagian bawah sebelah kanan, klik pada ikon kiub; ini ialah perpustakaan objek yang boleh ditambahkan pada skrin. Sekarang cari di sebelah kanan "Lihat Pengawal" dan seretnya dengan kursor tetikus ke medan kosong. Objek segi empat tepat akan muncul. Sebenarnya, anda boleh menambah semua elemen di sana.

5 Kini anda boleh menambah objek lain dari perpustakaan. Ini boleh menjadi medan teks, medan input dan elemen lain. Jika anda mengklik dua kali padanya, anda akan dapat menukar atribut dan sifatnya. Sebenarnya, dengan cara yang sama anda boleh menulis beberapa kod untuk bertindak balas terhadap satu klik. Walau bagaimanapun, jika anda telah menonton tutorial video tentang Objektif-C, maka anda tahu betul elemen yang anda perlukan dan cara menambahkannya.

6 Jika anda perlu menambah skrin lain, lakukan dengan cara yang sama seperti sebelumnya - alihkan objek ke ruang kosong "Lihat Pengawal". Kemudian anda juga boleh menggerakkan pelbagai objek ke atasnya.

7 Sekarang kita perlu memastikan bahawa pengguna boleh bergerak antara skrin ini menggunakan leret atau dengan mengklik pada pautan yang sesuai. Terdapat objek untuk ini dipanggil "Pengawal Navigasi". Alihkannya ke skrin utama anda. Seterusnya klik pada "Editor", kemudian "Terbenam Dalam" dan kepada objek yang disebutkan di atas. Bar kelabu akan muncul di bahagian atas skrin utama. Ini bermakna bar navigasi yang dipanggil telah ditambahkan padanya.

8 Untuk menambah butang navigasi skrin, terdapat objek "Butang Bar". Ini adalah butang, secara ringkasnya. Alihkannya ke panel navigasi dan tetapkan sifat yang sesuai.

Tambah objek yang tinggal dengan cara yang sama, dan juga tetapkan sifat yang diperlukan untuk mereka. Kami tidak akan mendalami cara mengodkan aplikasi, kerana ini adalah topik yang sangat luas. Lebih-lebih lagi, jika anda membaca bahan di atas, anda akan mengetahui maklumat yang diperlukan tentang perkara ini. Tetapi peringkat pengekodan di atas adalah permulaan perkembangan selanjutnya anda.

Ini adalah pengalaman kedua saya mencipta aplikasi. Saya bercakap tentang yang pertama secara terperinci di dalam - di sana kita bercakap tentang menarik pelaburan, memilih pemaju, dll. Malangnya, pancake pertama keluar berketul-ketul.

Saya sangat kecewa dengan kekurangan kemahiran pengaturcaraan saya, yang membolehkan pembangun memutarkan tangan mereka dan mendapat keuntungan daripada kejahilan. Oleh itu, saya memutuskan bahawa saya perlu menguasai pengekodan sendiri, kerana mencipta aplikasi dan tidak mengetahui cara memprogram bermakna jatuh ke dalam pergantungan yang sangat serius, yang diketahui oleh pembangun dan sering mengambil kesempatan daripadanya.

Pendidikan

Secara umum, keputusan telah dibuat dan pada Januari 2016 saya mula bekerja. Saya seorang saintis komputer gunaan mengikut profesion, tetapi sebenarnya, selain daripada kemahiran paling asas dalam bekerja dengan Pascal, saya tidak mengambil apa-apa daripada universiti, dan itu lima atau enam tahun lalu. Saya juga mempunyai sedikit pengalaman bekerja dengan HTML dan CSS, semasa membuat laman web mudah, yang, bagaimanapun, tidak banyak membantu dalam membuat aplikasi. Jadi saya bermula dari yang paling asas. Dari Pascal purba dan hampir dilupakan sepenuhnya. Saya memuat turun editor "Free Pascal" http://freepascal.ru/, menemui buku teks, dan bermula dengan program penambahan dan penolakan yang mudah. Secara keseluruhan, ia mengambil masa kira-kira dua minggu kelas, dua hingga tiga jam sehari, untuk menyegarkan ingatan saya.

Kajian mendalam tentang Pascal memerlukan lebih banyak latihan, yang mana saya dapati buku masalah Pascal Abrahamyan dengan 1000 masalah (PDF).

Oleh kerana saya ingin mula menulis aplikasi secepat mungkin, tanpa menunggu akhir peringkat pertama latihan, selari dengan menyelesaikan masalah dalam Pascal, saya mula belajar C, menurut buku "The C Programming Language" - Brian Kernighan dan Dennis Ritchie (PDF). Di sini saya secara berasingan akan mengatakan bahawa walaupun buku ini juga dalam bahasa Rusia, saya mempelajarinya dalam bahasa asal, kerana secara umum saya tahu bahasa Inggeris dengan baik, dan ini, pada pendapat saya, agak penting bagi mana-mana orang yang terlibat dalam pengaturcaraan. . Terdapat, sebagai peraturan, lebih banyak bahan pendidikan dan hanya bahan pada bahasa pengaturcaraan tertentu dalam bahasa Inggeris daripada bahasa Rusia. Bekerja dengan AppStore, memuat turun aplikasi, syarat penggunaan, dsb., semua ini juga kebanyakannya dalam bahasa Inggeris. Oleh itu, kita boleh mengatakan bahawa bahasa Inggeris di peringkat membaca sastera teknikal adalah kemahiran wajib bagi seorang pengaturcara.

Saya mempunyai pengaturcaraan Mac untuk C sejak projek pertama saya. Saya menyelesaikan masalah C dalam Xcode. Untuk lebih memahami perbezaan dalam sintaks Pascal dan C, saya mula menyelesaikan masalah dari buku masalah Abrahamyan yang sama, tetapi dalam C. Selepas dua minggu pelajaran 4-5 jam setiap hari, saya dapat menyelesaikan kira-kira 300 masalah dalam Pascal dan separuh daripada banyak masalah dalam C, serta membaca kira-kira 100 halaman buku di C. Pada masa yang sama, saya memutuskan untuk menyambungkan perkhidmatan bahasa Inggeris kepada proses pembelajaran - Tree House.

Ini adalah perkhidmatan latihan yang banyak membantu saya dalam menguasai HTML dan CSS. Kos langganan dari $25 sebulan. Tetapi pada pendapat saya, ini adalah wajar. Perkhidmatan ini menyediakan bahan latihan tentang pelbagai bahasa pengaturcaraan termasuk Java, C#, Python, Swift dan banyak lagi. Latihan berlangsung secara berperingkat, dari video ke video, dengan pelbagai sisipan tugas praktikal.

Semua video adalah sangat visual, menarik, sentiasa dikemas kini dan menerangkan secara terperinci semua perkara utama, sama ada intipati Pengaturcaraan Berorientasikan Objek atau prinsip bekerja dalam Xcode. Saya secara semula jadi memilih bahan latihan pada C dan mencipta aplikasi iOS dengan Objektif-C.

Oleh itu, latihan saya menyerupai percubaan untuk maju dalam semua bidang sekaligus. Saya berlatih menyelesaikan masalah dalam Pascal untuk, seperti yang saya lihat, meletakkan asas pengaturcaraan seteguh mungkin, mempelajari C untuk lebih memahami Objektif-C, dan akhirnya mempelajari Objektif-C untuk mula menulis untuk IOS secepat mungkin.

Jadi sebulan lagi lulus kelas harian secara purata 4-5 jam sehari. Di satu pihak, mungkin lebih logik untuk bergerak selangkah demi selangkah, katakan, mula-mula berurusan dengan Pascal, kemudian C dan kemudian beralih ke Objektif-C, tetapi sebenarnya, ia adalah percubaan untuk merangkumi segala-galanya yang akhirnya membolehkan saya menjimatkan banyak masa, kerana saya semakin mula memberi perhatian bukan untuk menyelesaikan masalah dalam Pascal dan C, tetapi secara langsung untuk membuat aplikasi dari program latihan Tree House. Ini adalah lebih menarik dan pada asasnya menunjukkan bahawa tugasan daripada buku masalah Abrahamyan serta bahan daripada Kernighan dan Buku Ritchie pada C adalah baik untuk memahami asas, tetapi secara amnya ia agak jauh daripada proses sebenar mencipta aplikasi. Akibatnya, pada penghujung bulan ketiga latihan saya, saya berhenti sepenuhnya berlatih Pascal dan C. Sebaliknya, saya menumpukan pada bahan praktikal Tree House pada Objektif-C dan membina aplikasi dalam Xcode.

Penciptaan permainan. Idea

Selepas mencipta beberapa aplikasi mudah daripada tutorial, saya memutuskan saya akhirnya bersedia untuk melakukan sesuatu yang lebih menarik. Setelah membuka senarai idea saya, yang saya tambahkan secara berkala apabila sesuatu yang berpotensi menarik terlintas di fikiran, saya menumpukan pada idea untuk mencipta permainan mengenai topik "Membanteras Rasuah." Maksud idea itu ialah pegawai rasuah bertindak sebagai musuh, mereka perlu dinetralkan dan kemudian dunia permainan akan menjadi lebih baik. Terdapat juga subteks yang mengatakan bahawa rasuah adalah buruk dan semakin kurang, semakin baik persekitaran. Memandangkan topik itu relevan untuk Rusia, dan saya tidak dapat mencari aplikasi dengan idea yang sama, saya menyelesaikannya dan mula memikirkan cara terbaik untuk melaksanakannya.

Walaupun saya masih tidak tahu cara membuat permainan, saya memutuskan bahawa beberapa video tutorial akan menyelesaikan isu ini. Mula-mula kami perlu memutuskan bagaimana rupa permainan itu. Selepas sedikit sumbang saran, telah diputuskan bahawa pilihan yang paling optimum ialah permainan 2D, di mana wira di setiap peringkat berlari dari kiri ke kanan dan pelbagai lawan dan halangan habis untuk bertemu dengannya. Pilihan ini nampaknya boleh diterima oleh saya untuk idea permainan dan tidak terlalu sukar untuk dilaksanakan.

Selepas konsep itu diluluskan dan diterangkan secara ringkas, adalah perlu untuk memahami bagaimana permainan dicipta. Selepas googling video, saya terus terjumpa video yang menunjukkan cara mencipta permainan seperti Flappy Bird ( Youtube).Satu persoalan penting timbul di sini. Bukan rahsia lagi bahawa Apple mengeluarkan bahasa pengaturcaraan baharu pada tahun 2014 - Swift, yang menyerap banyak perkara baik daripada Objective-C dan menjadi kesinambungan logiknya.

Video yang saya temui bercakap tentang mencipta Flappy Bird secara khusus dalam Swift, tetapi saya tidak dapat mencari video yang sama mudah dan mudah difahami untuk Objektif-C. Tanpa teragak-agak, saya memutuskan bahawa masa depan masih milik Swift dan lebih baik saya tidak ketinggalan, terutamanya kerana Rumah Pokok yang sama mempunyai bahan yang sangat baik untuk mengkajinya. Akibatnya, saya berehat untuk mempelajari Swift, memahami sintaks dan perbezaan utama daripada Objektif-C. Seminggu lagi kelas berlalu, dengan purata 8 jam sehari. Saya membaca tutorial Swift asas dan memutuskan bahawa saya akhirnya bersedia untuk melalui video tentang cara membuat Flappy Bird. Dalam beberapa hari saya dapat mencipta ini:

Setelah mendapat pemahaman umum tentang bekerja dengan enjin Sprite Kit, saya akhirnya dapat meneruskan kerja pada aplikasi saya.

Konsep

Pada mulanya, saya merancang untuk melakukan perkara yang paling mudah sahaja - latar belakang tatal 3 peringkat, wira animasi, senjata, keupayaan untuk melompat dan keupayaan untuk menembak. Ini adalah perlu kerana, selain daripada idea yang paling umum tentang bekerja dengan Sprite Kit, saya tidak mempunyai pengalaman, saya perlu bermula dengan sesuatu yang sangat mudah. Cara merakam klik dan melakukan lompatan wira, cara menatal latar belakang, cara membuat peluru pada saat menembak, dsb. Terdapat berpuluh-puluh atau bahkan beratus-ratus soalan ini. Dan penyelesaian untuk semua orang sentiasa sama - Google. Nasib baik, terdapat sejumlah besar bahan yang berbeza di Internet (malangnya, kebanyakannya dalam bahasa Inggeris) untuk mencipta permainan dalam Swift, yang memberikan contoh penyelesaian pelbagai soalan yang timbul untuk saya. Perkhidmatan soalan/jawapan Stack Overflow juga menyediakan bantuan yang sangat besar dan tidak ternilai.

Saya fikir saya dapat menyelesaikan 70% daripada semua soalan yang saya ada dengan bantuannya. Saya juga beralih kepada dokumentasi Apple, tetapi agak jarang. Mungkin dalam 10% kes maksimum, dan kemudian apabila tiada pilihan lain.

Selepas seminggu yang sibuk, di mana saya menumpukan hampir semua masa saya untuk pengaturcaraan - 8-10 jam sehari, saya dapat mencipta ini:

Ia boleh menyentakkan kakinya (saya melukis animasi sendiri dalam Photoshop), melompat dan menembak dari senapang patah dengan bunyi ciri, manakala pada masa yang sama latar belakang menatal di latar belakang. Ini adalah permulaan)

Prototaip

Lakaran ini membolehkan saya memahami banyak perkara tentang mekanik permainan masa depan saya dan, setelah memastikan konsep itu betul, saya memutuskan untuk menambah musuh yang boleh menembak serta reka bentuk biasa sebagai langkah seterusnya. Pada mulanya, saya merancang untuk memesan semua reka bentuk (latar belakang, animasi wira dan musuh, item, dll.) daripada seorang pekerja bebas, kerana ini adalah satu-satunya perkara yang tidak dapat saya lakukan sendiri. Tetapi kemudian saya teringat tentang laman web Envato Market: http://market.envato.com/, tempat saya membeli muzik, templat tapak web, persembahan, dsb.

Sebagai tambahan kepada apa yang disenaraikan di laman web ini, terdapat banyak pilihan semua jenis animasi, tekstur, bunyi dan perkara lain yang sangat diperlukan semasa membuat aplikasi. Harga, pada pendapat saya, juga sangat berpatutan. Sebagai contoh, set animasi watak utama yang saya pilih, selain bonus dalam bentuk pelbagai objek (syiling, berlian, dll.), termasuk 8 animasi seperti menembak, berlari, melompat, mati, dll.

Saya membeli set ini dengan harga $7. Satu-satunya perkara ialah barangan yang dibeli daripada mereka tertakluk kepada lesen yang berbeza. Sesetengah, sebagai contoh, membenarkan penggunaan produk dalam hanya satu produk untuk pengedaran percuma tanpa had, yang lain membenarkan penjualan semulanya kepada pihak ketiga yang matlamatnya adalah pengedaran percuma tanpa had yang sama, yang lain, seperti untuk muzik, contohnya, membenarkan pengedaran hanya kepada bilangan pendengar yang terhad, dsb. Kos lesen ini berbeza-beza dan selalunya boleh berbeza sebanyak 4-5 kali.

Tetapi kerana saya tidak akan menjual wira sebagai produk yang berasingan, lesen untuk pengedaran percuma tanpa hadnya sudah cukup untuk saya.

Secara umum, saya membeli wira, senjata, musuh dan semua yang diperlukan untuk latar belakang. Latar belakang itu sendiri tidak dijual sebagaimana adanya.

Ini adalah hasil kerja saya dalam Photoshop yang dibuat daripada beberapa dozen objek berbeza - pagar, asfalt, lubang, timbunan sampah, dll. Secara keseluruhan, ia mengambil masa beberapa hari untuk dibuat. Selepas itu, saya melihat Envato kira-kira 10 kali, setiap kali membeli sesuatu yang saya perlukan.

Seterusnya datang rutin, di satu pihak, tetapi pada masa yang sama kerja yang sangat menarik. Langkah demi langkah, saya menyelesaikan isu-isu tertentu yang muncul, menambah fungsi baharu, menulis semula kepingan kod yang nampaknya sudah tertulis kerana saya menemui pilihan untuk memendekkan, mengoptimumkan atau menambah baiknya, membetulkan pepijat, dsb. Sudah tentu, jika saya menulis aplikasi sedemikian sekarang, saya akan melakukan segala-galanya dua kali lebih cepat, tetapi pada masa itu semuanya baru kepada saya, dan saya perlu menghabiskan banyak masa mencari penyelesaian yang lebih baik. Dua bulan kerja intensif berlalu dan prototaip, seperti yang dimaksudkan, akhirnya direalisasikan.

Saya mempunyai tahap siap dengan 5 jenis senjata, peti pertolongan cemas, objek, musuh dan banyak lagi. Seterusnya, saya memutuskan untuk menjalankan ujian di kalangan rakan saya dan sumbang saran untuk memahami apa yang hilang. Terdapat beberapa pembetulan dan penambahan. Sehinggakan, mengikut anggaran saya, saya pasti akan mengusahakan permainan itu selama enam bulan lagi. Saya memikirkan segala-galanya selama beberapa hari dan akhirnya menghasilkan senarai perkara yang benar-benar diperlukan, memotong segala-galanya dan memutuskan untuk menggunakan kaedah daripada industri angkasa lepas yang pernah saya dengar. Intinya ialah dari titik tertentu, sebelum pelancaran, dilarang membuat sebarang perubahan atau penambahbaikan pada roket. Jika tidak, ia boleh diperbaiki selama-lamanya.

Penyelesaian permainan

Seterusnya isu reka bentuk musuh. Saya mempunyai 6 jenis kesemuanya - 5 musuh mudah dan seorang bos + warganegara yang jujur. Saya bercadang untuk mengarahkan semua sprite ini dilukis, kerana saya mahu watak-wataknya lebih hidup. Saya pergi ke Freelance.Ru dan menyiarkan iklan untuk penciptaan 5 aksara, dengan 18 animasi (8-25 bingkai) untuk setiap satu. Terdapat banyak animasi, kerana sebagai tambahan kepada yang standard berlari, menembak, ditangkap, berdiri, dan lain-lain, terdapat juga animasi kematian dari setiap jenis senjata, dalam gerakan perlahan atau tidak dalam gerakan perlahan. Harga paling murah, dari freelancer yang boleh dipercayai, yang mereka beritahu saya adalah sekitar 40 ribu rubel dan 1 bulan kerja. Ia kelihatan agak mahal bagi saya, jadi saya sekali lagi beralih ke Envato. Nasib baik, koleksi sprite berbeza dari pereka yang sama baru sahaja dimuat naik ke tapak.

Sprite daripada koleksinya, bersama-sama dengan satu set animasi, berharga purata $15. Perkara yang paling penting ialah arkib dengan sprite mengandungi fail untuk program Spriter.

Dengan membuka Sprite dalam program ini dan memahaminya sedikit (ia sangat mudah untuk dipelajari), anda boleh membuat sebarang animasi untuk watak anda dengan papan cerita yang berbeza. Secara umum, saya memikirkannya dan membeli semua watak di Envato, selepas itu saya memprosesnya sendiri, menambah animasi yang diperlukan dan memuat naiknya ke aplikasi. Bekerja dengan tekstur mesti dikatakan sangat membosankan dan membosankan. Saya perlu memuat turun animasi yang dicipta daripada program Spriter, kemudian memprosesnya dalam Photoshop (kembangkan, tetapkan dimensi), kemudian mampatkan, menamakan semula, membuat gambar 1x, 2x, 3x. Saya mungkin mengambil masa sekurang-kurangnya sebulan untuk memproses semua animasi. Sebulan penuh kerja membosankan dan membosankan, mujurlah saya dapat melibatkan seorang pembantu dalam kerja ini. Tetapi saya mengetahui keseluruhan proses, menjadikan diri saya animasi yang saya mahukan, mengulanginya seberapa banyak yang perlu.

Selari dengan bekerja pada tekstur, saya terus membangunkan permainan langkah demi langkah. Selepas dua bulan bekerja, akhirnya saya melihat cahaya di hujung terowong. Tetapi malangnya, ternyata saya terpaksa berhenti bekerja selama hampir dua bulan, kerana perkara lain bertimbun, ditambah musim panas, dan secara umum projek itu dijeda. Saya kemudiannya kembali bekerja pada awal Oktober. Walaupun saya berharap bahawa hanya tinggal sedikit, sebenarnya, masalah mula muncul di hadapan saya, yang, kerana kurang pengalaman, saya tidak mengesyaki sebelum ini.

Pertama, walaupun pada hakikatnya saya memampatkan tekstur png saya menggunakan perkhidmatan dalam talian ini: http://compresspng.com/ru/, ini tidak menyebabkan mereka menggunakan kurang RAM semasa aplikasi sedang berjalan. Sudah tiba masanya untuk saya mengetahui bahawa saiz gambar tidak sama dengan saiz RAM yang diperlukan untuknya.

Kedua, saya menemui dunia kebocoran memori yang mengagumkan, alat Xcode untuk menjejakinya, dan semua "keseronokan" "kitaran rujukan yang kuat". Selepas saya menjalankan permainan saya melalui alatan, saya dapati kira-kira 3 setengah ribu kebocoran.

Ketiga, saya menyedari bahawa resolusi tekstur aksara standard 180x180 untuk permainan saya pada dasarnya terlalu tinggi dan saya boleh membuat semula semua animasi dengan mudah pada resolusi 117x117 tanpa sebarang penurunan kualiti. Sungguh menarik bahawa pada masa mencipta animasi, saya bimbang bahawa saya tidak meninggalkan sumber dalam resolusi 360x360. Oleh kerana saiz gambar 2x adalah 180x180, gambar 3x itu, pada pemahaman saya, sepatutnya 360x360, tetapi atas kejahilan saya tidak membuatnya, dan ternyata, alhamdulillah, kerana akhirnya mereka ' t diperlukan.

Keempat, permainan saya, apabila semua animasi dan objek ditambah, mula perlahan dengan ketara. Ini memerlukan banyak kerja untuk mengoptimumkan dan pramuat animasi, bunyi dan perkara lain.

Akibatnya, saya terpaksa membuat semula sepenuhnya atlas animasi yang saya cipta (seperti yang ternyata, bukan untuk kali terakhir) untuk mengurangkan penggunaan RAM. Mampatkan dan memangkas semua imej, mengurangkannya secara purata 30%. Tolak gambar 3x sebagai tidak perlu dan hadkan diri anda kepada 1x dan 2x sahaja. Menjalankan banyak kerja untuk pengoptimuman dan menghapuskan kebocoran memori, dsb. Selain itu, banyak kerja diperlukan untuk menyelesaikan permainan itu sendiri, kerana pada mulanya semuanya kelihatan sedia dan anda hanya perlu menambah sentuhan akhir, tetapi menambah sentuhan ini memerlukan banyak masa. Secara umum, ini mengambil masa lebih daripada sebulan, walaupun kerja tidak terlalu intensif secara purata 4-5 jam sehari, kerana tidak ada peluang untuk terlibat sepenuhnya dalam projek itu. Dan pada awal bulan November semuanya lebih kurang siap.

Seterusnya, muat naik ke App Store. Di sini, terima kasih kepada pengalaman terdahulu, tiada soalan. Pada siang hari saya membuat tangkapan skrin, penerangan ringkas, ikon pertama yang terlintas di fikiran (by the way, sebaik sahaja anda mempunyai ikon siap pakai, lebih baik menjalankannya melalui perkhidmatan ini: https://makeappicon.com /, anda memuat naik ikon anda di sana dan ia memberikannya kembali kepada anda dalam semua saiz dan resolusi yang diperlukan), dan kata kunci (saya memilihnya menggunakan perkhidmatan https://sensortower.com/, tapak tersebut boleh memberi anda banyak maklumat berguna tentang anda atau mana-mana aplikasi lain, walaupun langganannya tidak murah).

Dan kini aplikasi itu tersedia di AppStore. Hore, Hore, tetapi tidak juga.

Ralat, brek teruk, gambar hilang, ranap, dsb. Inilah yang menanti saya apabila menguji pada iPhone berbeza dengan versi IOS yang berbeza. Ia serta-merta ternyata bahawa walaupun pada hakikatnya permainan ini berfungsi dengan baik pada IOS 9, pada iOS 10 ia berjalan dengan brek yang dahsyat, dan setiap saat dan kemudian bunyi itu hilang sepanjang masa. Saya "gembira" dengan hadiah yang terkandung dalam 10, tetapi tiada tempat untuk pergi dan saya terus mencari dan menghapuskan ralat. Sekali lagi, saya terpaksa membuat semula sepenuhnya sistem untuk meletakkan semua tekstur dalam aplikasi, membuat semula sepenuhnya sistem untuk memainkan semua bunyi, dan membetulkan banyak pepijat tambahan. Penukaran kod yang diperlukan daripada Swift 2.0 kepada Swift 2.3 apabila bekerja dengan XCode yang dikemas kini meninggalkan kesan yang sangat hangat. Pendek kata, saya sekali lagi menghabiskan lebih daripada sebulan untuk memuktamadkan segala-galanya dan hanya pada 13 Disember saya dapat memuat naik versi yang lebih kurang berfungsi. Walaupun jelas bahawa ini bukan kemas kini terakhir.

Tanpa pelaburan kewangan dan pengetahuan khusus.

Berikut ialah arahan paling mudah tentang cara membuat aplikasi iOS asas dan mencubanya pada peranti anda. Berdasarkan itu, anda boleh pergi lebih jauh ke dalam topik dan mencipta program yang sangat berguna.

Nota untuk pengguna Windows: untuk mencipta aplikasi untuk iOS anda perlu memasang OS X pada mesin maya (VirtualBox, VMware). Proses ini sama sekali tidak mudah dan memerlukan arahan yang berasingan.

1. Pergi ke App Store dan pasang persekitaran pembangunan XCode:

Jika anda sudah mempunyai XCode, maka anda perlu mengemas kininya.

2. Lancarkan xCode dan pilih item menu Fail -> Baru -> Projek:

3. Pilih platform dan jenis aplikasi:

4. Memberi maklumat tentang projek. Sila ambil perhatian bahawa kami telah memilih jenis aplikasi "Universal":

5. Klik pada butang Fail baharu dan nyatakan nama folder di mana kami akan menyimpan fail aplikasi:

6. Nyahtanda kotak semak Cipta Repositori Git dan klik butang Cipta. Akibatnya, anda harus pergi ke skrin permulaan untuk bekerja pada aplikasi:

7. Klik pada item Utama.papan cerita dalam menu kanan, seret elemen ke medan utama Label dan tambahkan teks padanya Hai dunia:

8. Sekarang kita perlu membuat ikon untuk aplikasi. Kami memilih gambar dan memuat naiknya ke mappicon.com:

9. Kami menunggu aplikasi web selesai berfungsi dan menunjukkan alamat e-mel anda untuk menerima arkib dengan ikon:

10. Kembali ke XCode dan pilih bahagian dalam menu kiri Aset.xasset:

11. Buka arkib daripada mel dan seret ikon dari sana ke ruang kerja XCode:

12. Pilih salah satu simulator peranti, klik pada butang pelancaran aplikasi (segitiga hitam) dan hidupkannya pada Mac anda Mod Pembangun:

13. Kami cuba mulakan semula. Kami sedang menunggu untuk iOS dimuatkan pada simulator:

14. Pastikan aplikasi berfungsi:

Kami melihat aplikasi siap pada peranti

Kini anda boleh melihat cara aplikasi berfungsi pada peranti. Sebelum mengikut arahan, pastikan anda mempunyai versi terkini XCode dan iOS.

1. Jom ke xKod -> Keutamaan -> Akaun dan tambah ID Apple anda:

2. Sambungkan peranti iOS ke komputer:

3. Pilih peranti yang dikehendaki dalam senarai dan klik pada butang mula. Kita tunggu sekejap.

4. Jika mesej tentang masalah keselamatan muncul, maka pada peranti iOS pergi ke tetapan -> asas -> Pengurusan peranti dan benarkan aplikasi daripada pembangun berjalan dengan Apple ID anda:

5. Pergi ke desktop dan cari ikon aplikasi baharu:

6. Pelancaran:

7. Putuskan sambungan peranti daripada komputer. Kini aplikasi itu boleh digunakan.

Apa yang perlu dilakukan jika anda mahukan lebih banyak lagi?

Menggunakan poking saintifik dan Google, anda boleh mengembangkan urutan tindakan di atas dan mencipta aplikasi yang lebih berfungsi. Tetapi anda hanya boleh menggunakannya pada peranti anda sendiri.

Lagipun, Apple meletakkan permintaan yang sangat tinggi terhadap aplikasi. Garis Panduan Semakan App Store merangkumi 29 mata dan lebih daripada seratus sub-mata. Agar permohonan mematuhinya dan diterima untuk diterbitkan di kedai, pembangun memerlukan sejumlah besar pengetahuan teknikal.

Jika anda ingin mencipta aplikasi iOS berkualiti tinggi yang bertujuan untuk kegunaan besar-besaran,