исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹Π΅ прилоТСния для Android с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. image loader. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹ Ρ„ΠΎΡ‚ΠΎ. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈ изучая прилоТСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ прилоТСния ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈ изучая прилоТСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ прилоТСния ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

НиТС пСрСчислСны Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠ΄ Android с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Благодаря ΠΈΠΌ Π²Ρ‹ смоТСтС ΡƒΠ·Π½Π°Ρ‚ΡŒ массу ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ Android.

1. Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с MVP Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ

Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ содСрТит ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ MVP с использованиСм Dagger2, GreenDao, RxJava2, Fast-Android-Networking ΠΈ PlaceholderView.

2. Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с MVVM Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ

Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ содСрТит ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ MVVM с использованиСм Dagger2, GreenDao, RxJava2, Fast-Android-Networking ΠΈ PlaceholderView.

3. Google I/O Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Google I/O β€” это конфСрСнция Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², которая проводится ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π³ΠΎΠ΄. На Π½Π΅ΠΉ прСдставлСны сотни дСмонстраций Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ β€” Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ устройства ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Android 5.0+ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ для Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ΠΎΠ² всСх Ρ„ΠΎΡ€ΠΌ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ².

исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. image loader. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹ Ρ„ΠΎΡ‚ΠΎ. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈ изучая прилоТСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ прилоТСния ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

4. Π§Π΅Ρ€Ρ‚Π΅ΠΆΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Google Android

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Android ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ большой Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ, ΠΊΠΎΠ³Π΄Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΈ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π­Ρ‚Π° свобода ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ прилоТСниям с большими классами. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ тСстированиС, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅.

АрхитСктура Android Blueprint ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для дСмонстрации Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… способов ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π· с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ ΠΈ инструмСнтов.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ для создания собствСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π—Π΄Π΅ΡΡŒ основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся структурС ΠΊΠΎΠ΄Π°, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅, Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Однако ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ сущСствуСт мноТСство способов создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с этими Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°ΠΌΠΈ ΠΈ инструмСнтами. Π‘ΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΡŒΡ‚Π΅ΡΡŒ Π½Π° своих собствСнных ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°Ρ… ΠΈ Π½Π΅ слишком ΡƒΠ²Π»Π΅ΠΊΠ°ΠΉΡ‚Π΅ΡΡŒ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ каноничСскими ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ.

5. Telegram

Telegram β€” это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями с Π°ΠΊΡ†Π΅Π½Ρ‚ΠΎΠΌ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ мСссСндТСр супСр быстрый, простой ΠΈ бСсплатный. Π”Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ содСрТит ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ Π°Π½Π΄Ρ€ΠΎΠΈΠ΄-прилоТСния для Telegram.

6. Plaid

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Android, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ способно Π²Π΄ΠΎΡ…Π½ΠΎΠ²ΠΈΡ‚ΡŒ своим Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ, благодаря ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ material design.

7. Wire

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‡Π°Ρ‚Π° ΠΏΠΎΠ»Π½ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½, Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ², GIF, ΠΌΡƒΠ·Ρ‹ΠΊΠΈ, эскизов ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ΠΎ всСгда обСспСчиваСт бСзопасноС сквозноС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅.

исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. image loader. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹ Ρ„ΠΎΡ‚ΠΎ. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈ изучая прилоТСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ прилоТСния ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

8. Андроид-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ribot

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ribot для Android, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, инструмСнты ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Android.

9. Kickstarter

Kickstarter β€” это глобальноС сообщСство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²ΠΎΠΏΠ»ΠΎΡ‰Π°Ρ‚ΡŒ творчСскиС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π² Тизнь. Π˜Π·ΡƒΡ‡Π°ΠΉΡ‚Π΅ тысячи ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π² области искусства, Π΄ΠΈΠ·Π°ΠΉΠ½Π°, Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ², ΠΈΠ³Ρ€, ΠΌΡƒΠ·Ρ‹ΠΊΠΈ ΠΈ Ρ‚. Π΄.

10. PocketHub

GitHub отказался ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, поэтому ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ΠΎ «Π² люди» ΠΈ поддСрТиваСтся ΠΊΠ°ΠΊ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. БСйчас общСство Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π°Π΄ ΠΏΠ΅Ρ€Π΅ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ этого прилоТСния Π² Play ΠœΠ°Ρ€ΠΊΠ΅Ρ‚. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ станСт Π΄ΡƒΡ…ΠΎΠ²Π½Ρ‹ΠΌ ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊΠΎΠΌ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ прилоТСния.

11. ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ Π°Π½Π΄Ρ€ΠΎΠΈΠ΄-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с MVP

ΠžΡ‡Π΅Π½ΡŒ простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ MVP.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ исходного ΠΊΠΎΠ΄Π° android-прилоТСния с использованиСм apk-Ρ„Π°ΠΉΠ»Π°

Π’Π°ΠΊ ΡƒΠΆ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для чтСния комиксов ΠΈ ΠΌΠ°Π½Π³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π½Π° своСм android-смартфонС, послС обновлСния стало ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Π»Π°Π²Ρ‹ комикса. Π”Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Ρƒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ Π±Ρ‹Π»ΠΎ доступно Π½Π° Google Play (платная вСрсия ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ Π±Ρ‹Π»Π° ΠΌΠ½ΠΎΠΉ ΠΊΡƒΠΏΠ»Π΅Π½Π°), Π½ΠΎ Π±Ρ‹Π»ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ Π² силу Β«Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ авторских ΠΏΡ€Π°Π²Β», послС Ρ‡Π΅Π³ΠΎ ΡƒΡˆΠ»ΠΎ Π² подпольС ΠΈ стало распространятся Ρ‡Π΅Ρ€Π΅Π· сайт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π£Π²Ρ‹, достойных Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ² этому ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π½Π° android ΠΈ iOS я Π½Π΅ нашСл, Π½ΠΎ ΠΈ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ особо Π½Π΅ Π±Ρ‹Π»ΠΎ ТСлания, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ я ΡƒΠΆΠ΅ ΠΏΠΎΠΊΡƒΠΏΠ°Π» Π²Π΅Ρ€ΡΠΈΡŽ Π±Π΅Π· Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹. Π‘Π°ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ Π½Π΅ сдСлал возмоТности ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π΅, Π° Π½Π° ΠΏΡ€ΠΎΡΡŒΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ отозвался. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΅Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ, это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ android-прилоТСния ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π° java, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ Π΅ΡΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€ Π½Π΅ обфусцировал своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. НСмного ΠΏΠΎΠ΄ΡƒΠΌΠ°Π², я приступил ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅.

Для Π½Π°Ρ‡Π°Π»Π° Π±Ρ‹Π» Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ сам apk-Ρ„Π°ΠΉΠ» прилоТСния. Π—Π°Ρ‚Π΅ΠΌ Π½Π΅Π΄ΠΎΠ»Π³ΠΈΠΉ поиск ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ ΠΏΡ€ΠΈΠ²Π΅Π» мСня Π½Π° сайт http://www.decompileandroid.com/. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ apk-Ρ„Π°ΠΉΠ» с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ исходников. Π£Π²Ρ‹, дСкомпиляция Π² java-классы происходит Π½Π΅ совсСм идСально ΠΈ поэтому Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ сам ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ прилоТСния Π² IDE(Idea) Ρƒ мСня Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Π½ΠΎ это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ саму структуру ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ПослС провСдСния Π°Π½Π°Π»ΠΈΠ·Π°, Π±Ρ‹Π»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π΄Π²Π° пСрспСктивных ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² классС BaseReaderFragment.java – placeAdViewIfNeeded ΠΈ removeAdViewIfNeeded.

Код ΠΌΠ΅Ρ‚ΠΎΠ΄Π° placeAdViewIfNeeded:

Π‘Π°ΠΌΠΎΠ΅ простоС, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎ Π½Π° ΡƒΠΌ послС чтСния ΠΊΠΎΠ΄Π°, это ΡƒΠ±Ρ€Π°Ρ‚ΡŒ всС лишнСС, ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ лишь Π²Ρ‹Π·ΠΎΠ² return;

Но, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано, Π΄Π°ΠΆΠ΅ Ссли Π±Ρ‹ я ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π² java-классС Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ, я Π±Ρ‹ Π½Π΅ смог Π² ΠΈΡ‚ΠΎΠ³Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² IDE. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ. Оказалось, Ρ‡Ρ‚ΠΎ smali-Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π² процСссС дСкомпиляции, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ послС внСсСния Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, вновь ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π£Π²Ρ‹, сайт, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π» ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π²Ρ‹ΡˆΠ΅, позволял лишь ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ исходники, Π½ΠΎ Π½Π΅ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΈΡΠΊΠ°Ρ‚ΡŒ способы ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.
Π‘Ρ‹Π»Π° Π½Π°ΠΉΠ΄Π΅Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ApkTools, которая позволяла Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ apk-Ρ„Π°ΠΉΠ»Ρ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π°ΡΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° aapt.exe, которая Π±Ρ‹Π»Π° взята ΠΌΠ½ΠΎΠΉ ΠΈΠ· стандартного SDK ΠΏΠΎΠ΄ Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ Π² ΠΏΠ°ΠΏΠΊΠ΅ android-sdk\build-tools\20.0.0.

Для удобства Π²Ρ‹Π·ΠΎΠ²Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΈΠ· ΠΏΠΎΠ΄ windows Π±Ρ‹Π» создан скрипт apktool.bat:

Для дСкомпиляции прилоТСния Π±Ρ‹Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

ПослС Ρ‡Π΅Π³ΠΎ, Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… исходниках Π±Ρ‹Π» Π½Π°ΠΉΠ΄Π΅Π½ Ρ„Π°ΠΉΠ» BaseReaderFragment.smali ΠΈ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π°ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈΡˆΠ»Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ сборки apk-Ρ„Π°ΠΉΠ»Π° ΠΈΠ· исходников.

Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ cΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

Но это Π΅Ρ‰Π΅ Π½Π΅ всС. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ, Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписью. Π‘Π°ΠΌΡ‹ΠΉ простой способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это – это ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для подписи ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ сСртификаты ΠΊ Π½Π΅ΠΉ.

РаспаковываСм Π°Ρ€Ρ…ΠΈΠ², выполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ apk-Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ нашС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Однако Π² процСссС тСстирования ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ оказалось, Ρ‡Ρ‚ΠΎ объявлСния большС Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ сама страница для ΠΈΡ… ΠΏΠΎΠΊΠ°Π·Π° создаСтся, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ приятно. Π‘Π½ΠΎΠ²Π° Π±Ρ‹Π» ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΊΠΎΠ΄ прилоТСния, Π½Π°ΠΉΠ΄Π΅Π½ класс BaseSeamlessReaderFragment, Π° Π² Π½Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ appendPages.

Π’ Π½Π΅ΠΌ Π±Ρ‹Π»ΠΎ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ строчка:

создаСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ страницу, ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² Π³Π»Π°Π²Π΅ ΠΌΠ°Π½Π³ΠΈ, с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΌ Π·Π° ΠΏΠΎΠΊΠ°Π· объявлСний. Π‘Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ эту строчку ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π‘Π½ΠΎΠ²Π° заглядываСм Π² Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ smali-Ρ„Π°ΠΉΠ»(BaseSeamlessReaderFragment$4) ΠΈ удаляСм строчку:

Π‘Π½ΠΎΠ²Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌ сборку apk-Ρ„Π°ΠΉΠ»Π° ΠΈΠ· исходников ΠΈ подписываСм нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ПослС установки ΠΈ тСстирования прилоТСния экран с Ρ€Π΅ΠΊΠ»Π°ΠΌΠΎΠΉ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ исчСз, Ρ‡Ρ‚ΠΎ ΠΈ Π±Ρ‹Π»ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ.

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² случаС нСобходимости ΠΌΠΎΠΆΠ½ΠΎ довольно просто ΠΈ быстро ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ android-прилоТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π½ΠΈΡ… Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности Π² Ρ‚Π΅Ρ… ситуациях, ΠΊΠΎΠ³Π΄Π° доступа ΠΊ исходникам Π½Π΅Ρ‚. НадСюсь ΠΎΠ½ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ людям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² ΠΏΠΎΡ…ΠΎΠΆΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΈ Π½Π΅ хотят мирится с Π½Π΅ΠΉ, Π½Π°ΠΉΡ‚ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π“Π΄Π΅ ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚ΡŒ исходники ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. 932D2D5F EF62 4F36 90D8 8918B3B2C490 1 201 a. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹ Ρ„ΠΎΡ‚ΠΎ. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹-932D2D5F EF62 4F36 90D8 8918B3B2C490 1 201 a. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 932D2D5F EF62 4F36 90D8 8918B3B2C490 1 201 a. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈ изучая прилоТСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ прилоТСния ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Marketing Lead, Appbooster

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ ΠΈΠ· нас Π·Π½Π°ΠΊΠΎΠΌΠ° концСпция MVP β€” минимально ТизнСспособного ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, ΠΊΠΎΠ³Π΄Π° для тСстирования ΠΈΠ΄Π΅ΠΈ создаСтся ΠΌΠ°Π»Ρ‹ΠΉ Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚. ΠšΠ°ΡΠ°Π΅Ρ‚ΡΡ это, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ, ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Но Π΄Π°ΠΆΠ΅ с MVP ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡΡ‚ΠΈΠ³Π°Ρ‚ΡŒ сотСн тысяч Ρ€ΡƒΠ±Π»Π΅ΠΉ. ВсСгда Π»ΠΈ это ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΎ? ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΎΡ‚Π²Π΅Ρ‚ β€” Π½Π΅Ρ‚. Π’Ρ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ шаблон ΠΈ Π½Π° Π΅Π³ΠΎ основС ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои Π³ΠΈΠΏΠΎΡ‚Π΅Π·Ρ‹. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ расскаТСм ΠΏΡ€ΠΎ маркСтплСйсы, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ прилоТСния (исходныС ΠΊΠΎΠ΄Ρ‹).

ИдСя ΠΊΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ исходник для своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π΅ такая ΡƒΠΆ бСзумная. Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ для трансляции подкастов, ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ², Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠΈ, Π±Π»ΠΎΠ³ΠΎΠ², Π·Π°ΠΊΠ°Π·Π° Π΅Π΄Ρ‹ ΠΈΠ· рСсторанов, Π΄Π΅ΠΉΡ‚ΠΈΠ½Π³Π°, Π΄Π°ΠΆΠ΅ такси ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Rocket Science. ВсС ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ ΠΈ, прямо говоря, Π·Π°ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρƒ студии ΠΈΠΌΠ΅Π΅Ρ‚ смысл послС MVP, Π° Π½Π΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΅Π³ΠΎ тСстирования, послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π°ΠΌ ΡƒΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ понятны ограничСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ прилоТСния ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ объСм Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΎΠΊ.

ΠŸΠ»ΡŽΡΡ‹ ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ шаблона прилоТСния:

ΠœΠΈΠ½ΡƒΡΡ‹ ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ исходников прилоТСния:

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΎΠ±Π·ΠΎΡ€Ρƒ самих сайтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ упорядочили ΠΏΠΎ количСству доступных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

CODE CANYON

Один ΠΈΠ· самых популярных ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ² (Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Envato Market, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΎΡ€Π³ΡƒΠ΅Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅ всСм Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ) с ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ΅ΠΉ всСго ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ β€” скриптов, ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‚Π΅ΠΌ ΠΈ всСго ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ. Π•ΡΡ‚ΡŒ Π² Code Canyon ΠΈ прилоТСния β€” Π½Π° настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±ΠΎΠ»Π΅Π΅ 6,000 исходников ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для iOS ΠΈ Android.

SELL MY APP

ΠœΠ°Ρ€ΠΊΠ΅Ρ‚ΠΏΠ»Π΅ΠΉΡ, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ большС Π½Π° ΠΈΠ³Ρ€Π°Ρ… (Ρ‚Ρ€ΠΈ Π² ряд, раскраски, Π±ΠΈΠ»ΡŒΡΡ€Π΄Ρ‹, слоты ΠΈ ΠΏΡ€; Unity, Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ iOS ΠΈ Android, Cocos2dx, libgdx ΠΈ ΠΏΡ€.). Около 2,000 шаблонов самых Ρ€Π°Π·Π½Ρ‹Ρ… ΠΈΠ³Ρ€ ΠΈ ΠΎΠΊΠΎΠ»ΠΎ 700 ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

FLIPTOPIA

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ сайт для ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β€” ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Apptopia ΠΈ сСйчас Π½Π° Π½Π΅ΠΌ ΠΎΠΊΠΎΠ»ΠΎ 1,800 ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΠ³Ρ€.

CODESTER

Как ΠΈ Code Canyon, это ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ маркСтплСйс ΠΊΠΎΠ΄Π°, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΠΉ, Π² Ρ‚ΠΎΠΌ числС, ΠΈ исходники ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. БСйчас Ρ‚ΡƒΡ‚ ΠΎΠΊΠΎΠ»ΠΎ 1,800 исходников.

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ нСсколько сайтов, ΠΏΡ€ΠΎΠ΄Π°ΡŽΡ‰ΠΈΡ… прилоТСния, Π½ΠΎ всС ΠΎΠ½ΠΈ, скорСС всСго, ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Ρƒ с этими Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ.

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΏΠΎ ΠΏΠΎΠΊΡƒΠΏΠΊΠ΅

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β€” прСкрасный способ ΠΎΡ‡Π΅Π½ΡŒ дСшСво ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ идСю. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» ΠΈ сдСлал всС Π·Π° вас, Π° Π²Π°ΠΌ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Π½Π° это свои ΠΈΠ΄Π΅ΠΈ, знания ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π΅ Π±ΠΎΠΉΡ‚Π΅ΡΡŒ слоТностСй, Π² Π΄Π°Π½Π½ΠΎΠΉ области ΠΈΡ… достаточно ΠΌΠ°Π»ΠΎ.

исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. 932D2D5F EF62 4F36 90D8 8918B3B2C490 1 201 a. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹ Ρ„ΠΎΡ‚ΠΎ. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹-932D2D5F EF62 4F36 90D8 8918B3B2C490 1 201 a. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 932D2D5F EF62 4F36 90D8 8918B3B2C490 1 201 a. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈ изучая прилоТСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ прилоТСния ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Marketing Lead, Appbooster

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅

исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. lesson 6. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹ Ρ„ΠΎΡ‚ΠΎ. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹-lesson 6. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° lesson 6. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈ изучая прилоТСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ прилоТСния ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΎΠ»ΠΎΠ³Π°ΠΌ ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ извСстно, Ρ‡Ρ‚ΠΎ рСпутация ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” основа Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠ³ΠΎ продвиТСния. На Ρ€Ρ‹Π½ΠΊΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π° это ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ самого прилоТСния, ΠΎΡ‚Π·Ρ‹Π²Ρ‹ Π½Π° Π½Π΅Π³ΠΎ ΠΈ Π΅Ρ‰Π΅ нСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ прилоТСния Android

Π‘ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π΄Π½Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Android становится всС большС ΠΈ большС. ΠœΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ интСрСсных ΠΈΠ³Ρ€ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Play Market. ВсС ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйс ΠΈ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ с поставлСнной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Π‘Π΅Π· Π½ΠΈΡ… слоТно ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ соврСмСнный ΠΌΠΈΡ€ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ цСнят Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΈ внСшний Π²ΠΈΠ΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° Π΅Ρ‰Π΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ΡΡ ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ устройством.

Если Π’Π°ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π±Ρ‹Π»ΠΎ интСрСсно, Ρ‡Ρ‚ΠΎ находится β€œΠΏΠΎΠ΄ капотом” любимого прилоТСния, ΠΈ Π²Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ смыслитС Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ – эта ΡΡ‚Π°Ρ‚ΡŒΡ для Вас. ΠœΡ‹ расскаТСм, ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ прилоТСния Android прямо Π½Π° вашСм Π³Π°Π΄ΠΆΠ΅Ρ‚Π΅. ΠŸΠΎΠ΅Ρ…Π°Π»ΠΈ!

ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для ОБ Android, ΠΊΠ°ΠΊ ΠΈ большая Ρ‡Π°ΡΡ‚ΡŒ самой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, написаны Π½Π° языкС программирования Java. А это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ посмотрСв Π² исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Android, ΠΌΡ‹, скорСС всСго, ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Java ΠΊΠΎΠ΄ с использованиСм Android SDK (которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя инструмСнты ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Android). ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡŽΡΡŒ: Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания Java ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Android.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Android?

Для Π½Π°Ρ‡Π°Π»Π° скачайтС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, исходный ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Вас заинтСрСсовал. Π—Π°Ρ‚Π΅ΠΌ Π·Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² Play Market ΠΈ скачайтС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Show Java. ИмСнно ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Установили? ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ самому интСрСсному – ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΡŽ исходного ΠΊΠΎΠ΄Π° Android ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ЗапускаСм Show Java.

исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. show java 2.1.0 1. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹ Ρ„ΠΎΡ‚ΠΎ. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹-show java 2.1.0 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° show java 2.1.0 1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈ изучая прилоТСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ прилоТСния ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· установлСнных, ΠΈΠ»ΠΈ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π½Π° SD ΠΊΠ°Ρ€Ρ‚Π΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ дСкомпилятор. Π― ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽ CRF. Если Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ – ΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ JaDX.

НачнСтся дСкомпиляция ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя. Π§Π΅ΠΌ большС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ – Ρ‚Π΅ΠΌ дольшС дСкомпилятор Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒ исходныС ΠΊΠΎΠ΄Ρ‹. Пока Π²Ρ‹ ΠΆΠ΄Π΅Ρ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎ пСрспСктивных языках программирования.

По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ процСсса Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ список ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с исходниками Android прилоТСния. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, это Π½Π΅ 100% копия ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ писали Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ этого прилоТСния. Но основная Π»ΠΎΠ³ΠΈΠΊΠ° сохраняСтся, Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π½Π΅ слоТно. Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с исходниками? Π§Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΉΡ‚Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π’Π°ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ интСрСсны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ β€œΡ„ΠΈΡ‡ΠΈβ€ ΠΈΠ»ΠΈ особСнности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Если Π²Ρ‹ нашли ΠΎΡˆΠΈΠ±ΠΊΡƒ, поТалуйста, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ тСкста ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl+Enter.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ простой 2D ΠΈΠ³Ρ€Ρ‹ Π½Π° Android

Когда я писал эту Β«ΠΈΠ³Ρ€ΡƒΒ» Ρƒ мСня Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»Π° масса вопросов ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ зацикливания спрайтов Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΠ½ΠΈ появлялись Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ врСмя, Ρ‚Π°ΠΊ ΠΆΠ΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ столкновСний Π΄Π²ΡƒΡ… спрайтов ΠΈ Π±ΠΎΠ»Π΅Π΅, всС эти вопросы я сСгодня Ρ…ΠΎΡ‡Ρƒ ΠΎΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒ Π² этом постС Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ я Π½Π΅ нашСл Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° ΠΌΠΎΠΈ вопросы ΠΈ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ самому. ΠŸΠΎΡΡ‚ Π½ΠΈ Π½Π° Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΡƒΠ΅Ρ‚, я Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ³Ρ€ ΠΏΠΎΠ΄ android ΠΈ ΠΏΠΈΡˆΡƒ я для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π² Π΄Π°Π½Π½ΠΎΠΉ отрасли. ΠšΠΎΠΌΡƒ стало интСрСсно ΠΏΡ€ΠΎΡˆΡƒ ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚.

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ:

Π˜Π³Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ· сСбя ΠΏΠΎΠ»Π΅ (сцСну) Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ располагаСтся ниндзя ΠΈ ΠΏΡ€ΠΈΠ·Ρ€Π°ΠΊΠΈ. Нинзя Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Ρ‰ΠΈΡ‰Π°Ρ‚ΡŒ свою Π±Π°Π·Ρƒ ΠΎΡ‚ этих ΠΏΡ€ΠΈΠ·Ρ€Π°ΠΊΠΎΠ² стрСляя ΠΏΠΎ Π½ΠΈΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² android market’e. Π₯отя я сильно замахнулся, Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ похоТая идСя.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΈΠ³Ρ€Π°:
исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. 8967b6ca914c9adb68ebc0bc4b938d4c. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹ Ρ„ΠΎΡ‚ΠΎ. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹-8967b6ca914c9adb68ebc0bc4b938d4c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8967b6ca914c9adb68ebc0bc4b938d4c. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈ изучая прилоТСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ прилоТСния ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Начало Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ЗапускаСм Eclipse β€” File β€” Android Project β€” Defens β€” Main.java.

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ наш Ρ„Π°ΠΉΠ» Main.java ΠΈ измСняСм вСсь ΠΊΠΎΠ΄ Π½Π° ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΠΆΠ΅:

Код Π½ΠΈΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ нашСй Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ *.xml Ρ„Π°ΠΉΠ» Ρ‚Π΅ΠΌΡ‹, Π° класс ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ нас являСтся самой сцСной.

Π”Π°Π»ΡŒΡˆΠ΅ Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс GameView.java ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ для нас Π³Π»Π°Π²Π½Ρ‹ΠΌ классом Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ производится прорисовка всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’Π°ΠΊ ΠΆΠ΅ Π² этом классС Π±ΡƒΠ΄Π΅Ρ‚ находится ΠΈ наш ΠΏΠΎΡ‚ΠΎΠΊ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ прорисовка ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ³Ρ€Ρ‹ Π½Π° процСссор. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ класс ΠΊΠΎΠ³Π΄Π° Π½Π° сцСнС Ρƒ нас Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ происходит:

Из ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² надСюсь понятно какая функция Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚. Π­Ρ‚ΠΎΡ‚ класс являСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ ΠΏΠΎ этому Π² Π½Π΅ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ всС дСйствия (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΈΠ³Ρ€Π΅, Π½ΠΎ для Π½Π°Ρ‡Π°Π»ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ нСсколько классов ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ β€” созданиС спрайтов.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ спрайтов

БСйчас ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ спрайты Π½ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ я Π²ΡΡ‚Π°Π²Π»ΡŽ спрайты Π² проэкт, Ссли тянСт Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π΄Π΅Π»Π°Ρ‚ΡŒ спрайты ΠΏΡ€ΠΎΡˆΡƒ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΡƒΡ€ΠΎΠΊ ΠΏΠΎ созданию ΠΈΠ³Ρ€Ρ‹ ΠΏΠΎΠ΄ android.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ эти ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π² ΠΏΠ°ΠΏΠΊΡƒ res/drawable для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Eclipse ΠΌΠΎΠ³ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ эти ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π’Π°Ρˆ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ рисунок Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ ΠΈΠ³Ρ€ΠΎΠΊ Π½Π° экранС.
исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. image loader. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹ Ρ„ΠΎΡ‚ΠΎ. исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€Ρ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈ изучая прилоТСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ прилоТСния ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.
Бкучная картинка… Π”Π°Π²Π°ΠΉΡ‚Π΅ Π»ΡƒΡ‡ΡˆΠ΅ создадим этого самого ΠΈΠ³Ρ€ΠΎΠΊΠ°.

Нам Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ спрайт Π½Π° экранС, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ? Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ класс Player.java ΠΈ записываСм Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» классов ΠΈ Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ Bullet.java, этот класс Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΏΠΎΠ»Π΅Ρ‚Π°, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅Ρ‚Π° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡƒΠ»ΠΈ. И Ρ‚Π°ΠΊ, создали Ρ„Π°ΠΉΠ», ΠΈ пишСм Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Из ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ понятно Ρ‡Ρ‚ΠΎ пуля выполняСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ дСйствиС β€” ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π»Π΅Ρ‚Π΅Ρ‚ΡŒ ΠΏΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ.

РисуСм спрайты Π½Π° сцСнС

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ эти Π΄Π²Π° класса ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ создали, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² классС GameView.java, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π½Π°ΠΌ наши рисунки. ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ вСсь ΠΊΠΎΠ΄ я ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Ρƒ, Π±ΡƒΠ΄Ρƒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ΄ Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΌΠ½Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

Для Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ классов Bullet ΠΈ Player для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° экранС, для этого создадим список ΠΏΡƒΠ»ΡŒ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΠ½ΠΈ Ρƒ нас Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π»ΠΈΡΡŒ, ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса ΠΈΠ³Ρ€ΠΎΠΊΠ°.

Π”Π°Π»ΡŒΡˆΠ΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ нашим классам, Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ конструктор GameView ΠΈ вставляСм Π² самый ΠΊΠΎΠ½Π΅Ρ† Π΄Π²Π΅ строчки:

GameView.java β€” ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ GameView

И Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ onDraw(Canvas c); Π΄Π΅Π»Π°Π΅ΠΌ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ эти спрайты. ΠŸΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ всСй ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π½Π°ΡˆΠΈΡ… элСмСнтов ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΡ…ΡΡ Π² спискС.

А для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΏΡƒΠ»ΠΈ Π½Π°Ρ‡Π°Π»ΠΈ Π²Ρ‹Π»Π΅Ρ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° экран, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ createSprites(); ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ наш спрайт.

Ну ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² создаСм Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” onTouch(); ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ собствСнно Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ всС касания ΠΏΠΎ экрану ΠΈ ΡƒΡΡ‚Ρ€Π΅ΠΌΠ»ΡΡ‚ΡŒ ΠΏΡƒΠ»ΡŽ Π² Ρ‚Ρƒ Ρ‚ΠΎΡ‡ΠΊΡƒ Π³Π΄Π΅ Π±Ρ‹Π»ΠΎ наТатия Π½Π° экран.

Π’Ρ€Π°Π³ΠΈ

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π½Π°ΠΌ Π½Π΅ Π±Ρ‹Π»ΠΎ скучно ΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Ρ€Π°Π³ΠΎΠ². Для этого Π½Π°ΠΌ придСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ класс ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Enemy.java ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ нашСго Π²Ρ€Π°Π³Π° Π½Π° Π½Π°ΡˆΡƒ Π±Π°Π·Ρƒ. Класс довольно простой ΠΏΠΎ этому смотрим ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅:

И Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ происходит Π² этом классС? Π Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽ: ΠΌΡ‹ объявили ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для нашСго Π²Ρ€Π°Π³Π°, высота ΡˆΠΈΡ€ΠΈΠ½Π° ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹. Для размСщСния ΠΈΡ… Π½Π° сцСнС я использовал класс Random() для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π½Π° сцСнС, появлялись Π½Π° всС Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅, Π° Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… ΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°Ρ…. Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊ ΠΆΠ΅ являСтся Ρƒ нас Ρ€Π°Π½Π΄ΠΎΠΌΠ½ΠΎΠΉ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ€Π°Π³ шСл с Ρ€Π°Π·Π½ΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρƒ нас начинаСтся с 0 ΠΈ заканчиваСтся 10, 10 β€” максимальная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡΡ‚ΠΈΠ³Π½ΡƒΡ‚ΡŒ Π²Ρ€Π°Π³. Π”Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ с ΠΏΡ€Π°Π²Π° Π½Π°Π»Π΅Π²ΠΎ, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ Π±Ρ‹Π»ΠΈ сразу Π²ΠΈΠ΄Π½Ρ‹ Π½Π° сцСнС я Π·Π°ΠΊΠΈΠ½ΡƒΠ» ΠΈΡ… Π½Π° 900 пиксСлСй Π·Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ экрана. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π΄ΠΎΠΉΠ΄ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊ Π°Ρ‚Π°ΠΊΠ΅.

Π”Π°Π»ΡŒΡˆΠ΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π²Ρ€Π°Π³Π° Π½Π° сцСнС, для этого Π² классС GameView.java Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ список Π²Ρ€Π°Π³ΠΎΠ² для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΠ½ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π»ΠΈΡΡŒ ΠΈ создаСм Π±ΠΈΡ‚ΠΌΠ°ΠΏ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ спрайт:

Π”Π°Π»Π΅Π΅ создаСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ для задания скорости появлСния Π²Ρ€Π°Π³ΠΎΠ² Π½Π° экранС:

И ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ класс Runuble, Π²ΠΎΡ‚ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ инициализация класса GameView:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ Вас Склипс Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ run(), создайтС Π΅Π³ΠΎ, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Π’ самом Π½ΠΈΠ·Ρƒ класса GameView

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ создаСм ΠΏΠΎΡ‚ΠΎΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ спрайт ΠΎΡ‚ 0 Π΄ΠΎ 2000 милисСкунд ΠΈΠ»ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 0, 1 ΠΈΠ»ΠΈ 2 сСкунды.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² конструкторС Π² самом ΠΊΠΎΠ½Ρ†Π΅ пишСм ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ наш спрайт с классом для отобраТСния Π½Π° сцСнС:

Ну ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² onDraw(); Π’ΠΎΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΈ пишСм Π² Π½Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠœΠ΅Ρ‚ΠΎΠ΄ onDraw() Π² GameView

Π‘Π½ΠΎΠ²Π° ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π²Ρ€Π°Π³ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈ провСряСм β€” Ссли Π²Ρ€Π°Π³ зашСл Π·Π° ΠΏΡ€Π΅Π΄Π΅Π» Π² 1000 пиксСлСй β€” удаляСм Π΅Π³ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ссли ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρƒ нас ΠΏΡΠΌΡΡ‚ΡŒ закакаСтся ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ зависнСт, Π° Π½Π°ΠΌ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹. ВсС ΠΈΠ³Ρ€Π° Π³ΠΎΡ‚ΠΎΠ²Π° для запуска.

ЗапускаСм Π½Π°ΡˆΡƒ ΠΈΠ³Ρ€Ρƒ ΠΈ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ? А Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ:

Но Ρ‡Ρ‚ΠΎ я Π²ΠΈΠΆΡƒ? О Π½Π΅Ρ‚. ΠŸΡƒΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡƒΠ±ΠΈΠ²Π°ΡŽΡ‚ Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ·Ρ€Π°ΠΊΠΎΠ² Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ? А я Π’Π°ΠΌ скаТу Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ спрайта β€” ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Ρ‚Π΅ΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ± этом.

ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ столкновСний

И Ρ‚Π°ΠΊ, Ρƒ нас Π΅ΡΡ‚ΡŒ спрайт, Ρƒ нас Π΅ΡΡ‚ΡŒ сцСна, Ρƒ нас всС это Π΄Π°ΠΆΠ΅ двиТСтся красиво, Π½ΠΎ какая польза ΠΎΡ‚ всСго этого ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π½Π° сцСнС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ происходит ΠΊΡ€ΠΎΠΌΠ΅ хоТдСния Ρ‚ΡƒΠ΄Π° сюда этих спрайтов?

Π‘ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ я навозился ΠΏΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ, Π΄Π°ΠΆΠ΅ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Ρ‚Π°ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠ»ΠΎ Ρ‡Ρ‚ΠΎ психовал ΠΈ ΡƒΡ…ΠΎΠ΄ΠΈΠ» Π³ΡƒΠ»ΡΡ‚ΡŒ ΠΏΠΎ ΡƒΠ»ΠΈΡ†Π΅)) Π‘Π°ΠΌΡ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, хотя Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ бСзобидно…

Π›Π°Π΄Π½ΠΎ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠΆΠ΅ создадим этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π³Π»Π°Π³ΠΎΠ»ΡŒΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒβ€¦ Π“Π΄Π΅ Ρ‚ΠΎ Π² ΠΊΠΎΠ½Ρ†Π΅ класса GameView создаСм ΠΌΠ΅Ρ‚ΠΎΠ΄ testCollision() ΠΈ пишСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

Π’ самом Π½ΠΈΠ·Ρƒ класса GameView.java

И Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Ρƒ нас происходит Π² этом ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅? ΠœΡ‹ создаСм ΠΎΠ΄ΠΈΠ½ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈ запускаСм Ρ†ΠΈΠΊΠ» для просмотра всСй ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ спрайтов, ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ спрайт ΠΏΡƒΠ»ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ.

Π”Π°Π»ΡŒΡˆΠ΅ создаСм Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ списком спрайтов ΠΈ снова пСрСопрСдСляСм ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ спрайт Π²Ρ€Π°Π³Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ. И создаСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ вСтвлСния β€” if() ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ собствСнно ΠΈ провСряСт Π½Π° столкновСния наши спрайты. Π’ Π½Π΅ΠΌ я использовал ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (abs) которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠ½Π΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ ΠΎΡ‚ Π΄Π²ΡƒΡ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ².

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΈΡ„Π° происходит сравнСния Π΄Π²ΡƒΡ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚ (ΠŸΡƒΠ»Ρ ΠΏΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π΅ Π₯ минус ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° Π²Ρ€Π°Π³Π° ΠΏΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π΅ Π₯ мСньшС Π»ΠΈΠ±ΠΎ Ρ€Π°Π²Π΅Π½ ΡˆΠΈΡ€ΠΈΠ½Π° ΠΏΡƒΠ»ΠΈ плюс ΡˆΠΈΡ€ΠΈΠ½Π° Π²Ρ€Π°Π³Π° / 2 (Π΄Π΅Π»ΠΈΠΌ Π½Π° Π΄Π²Π° для нахоТдСния Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°)) ΠΈ (ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚ (ΠŸΡƒΠ»Ρ ΠΏΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π΅ Π£ минус ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° Π²Ρ€Π°Π³Π° ΠΏΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π΅ Π£ мСньшС Π»ΠΈΠ±ΠΎ Ρ€Π°Π²Π΅Π½ ΡˆΠΈΡ€ΠΈΠ½Π° ΠΏΡƒΠ»ΠΈ плюс ΡˆΠΈΡ€ΠΈΠ½Π° Π²Ρ€Π°Π³Π° / 2 (Π΄Π΅Π»ΠΈΠΌ Π½Π° Π΄Π²Π° для нахоТдСния Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°)));

И Π² ΠΊΠΎΠ½Ρ†Π΅ всСго, Ссли пуля Ρ‚Π°ΠΊΠΈ достала Π΄ΠΎ Π²Ρ€Π°Π³Π° β€” ΠΌΡ‹ удаляСм Π΅Π³ΠΎ со сцСны с ΠΊΠΎΠ½Ρ†Π°ΠΌΠΈ.

Ну ΠΈ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ эта функция стала Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ записываСм Π΅Ρ‘ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ run() ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π² классС GameThread, Π½ΠΈΠΆΠ΅ нашСго ΠΌΠ΅Ρ‚ΠΎΠ΄Π° рисования onDraw().

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Ρƒ нас получаСтся послС запуска прилоТСния:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *