ไฮ! ฉันชื่ออีวานเป็นนักพัฒนาแอป Android มาระยะหนึ่งแล้ว หรือเพื่อให้ดูเหมือนว่า ย้อนกลับไปในวันนั้น (เรากำลังพูดถึงปี 2009) Android เป็นเพียงเด็กทารกและฉันเฝ้าดู มนุษย์ตัวเล็กสีเขียว ตั้งแต่นั้นเป็นต้นมา เมื่อไม่นานมานี้ฉันกลัวว่า Android จะแซงหน้าฉันได้
ปัจจุบัน Android ไม่ได้ใช้งานเพียงอย่างเดียว หลายหมื่น ของโทรศัพท์และแท็บเล็ตต่างๆ มันขึ้นอยู่กับคุณ ข้อมือ ในไฟล์ ห้องนั่งเล่น ในไฟล์ รถยนต์ และทันทีที่เราเริ่มกำหนดที่อยู่ IP ให้กับวัตถุที่ไม่มีชีวิตมันก็จะมีอยู่ทั่วไปรอบตัวเรา พื้นดินจำนวนมากสำหรับไฟล์ นักพัฒนา Android ที่มีประสบการณ์ ครอบคลุม!
นอกจากนี้ยังมี หนึ่งล้านแอพ บน Google Play ไม่นับ Amazon AppStore หรือตลาดที่เราไม่สนใจโดยทั่วไปเช่นจีน อย่าลืมนับไม่ถ้วน บริษัท พัฒนาแอพมือถือ ที่สร้างรายได้หลายพันล้านทุกปี
ดังนั้น นักพัฒนาอิสระ สร้างแอปที่ประสบความสำเร็จในตลาดใหญ่นี้กับผู้เล่นรายใหญ่? ฉันไม่รู้เลยฉันยังไม่ได้สร้างแอปที่ประสบความสำเร็จ! แต่ฉันได้สร้างสิ่งที่น่ารักและฉันต้องการแบ่งปันเรื่องราวของฉันกับคุณ
ความสำเร็จ (โดยปกติ) ไม่ได้เกิดขึ้นในชั่วข้ามคืนและนี่ไม่ใช่แอปแรกของฉัน ฉันมีหลายอย่างที่ไม่คาดคิด ความนิยมในการพัฒนาในช่วงสุดสัปดาห์ ชอบ ปฏิทินมาซิโดเนียออร์โธดอกซ์ ด้วยผู้ใช้มากกว่า 30,000 คนในภาษาที่ไม่เกิน 4 ล้านคนสามารถเข้าใจไปจนถึงความล้มเหลวที่ประสบความสำเร็จมากขึ้นเช่น ทวีตพาย ซึ่งเป็นแอปที่มีน้ำหนักมาก ครึ่ง ความครอบคลุม และฐานผู้ใช้ที่แย่มากจากผู้ใช้ที่ใช้งานอยู่กว่า 600 คน มีบทเรียนมากมาย!
แม้ว่าแอปเหล่านี้จะช่วยให้ฉันเข้าใจความคิดของ 'สิ่งมีชีวิตที่เรียกว่าผู้ใช้' ได้ดีขึ้นเล็กน้อย แต่แอปที่สร้างแรงบันดาลใจให้ฉันคือโครงการสองชั่วโมง เดิมทีพัฒนาขึ้นเพื่อทำให้ฉันเป็นเศรษฐีเมื่อผู้ใช้ 1,428,571 รายซื้อแอปเนื่องจาก Google ใช้เงิน 30 เซ็นต์จากทุก ๆ ดอลลาร์ แอพ Dollar ทำขึ้นเพื่อทดสอบบัญชีผู้ขายของฉัน
ฉันแทบไม่รู้เลยว่าหลายปีต่อมาฉันจะได้รับอีเมลจากแม่ที่มีความสุขโดยระบุว่าเป็นเงินที่ดีที่สุดที่เธอเคยใช้ตั้งแต่เด็กของเธอยิ้มทุกครั้งที่แอปของฉันกอดเขา
และนั่นคือจุดเริ่มต้นของความคิด! ทำไมไม่ใช้ความต้องการพื้นฐานของมนุษย์ในการกอดแล้วทำให้สวยล่ะ? สร้างขึ้นสำหรับผู้ชมที่เฉพาะเจาะจงโต้ตอบท้าทายใช้สนุกและแบ่งปันได้สนุกยิ่งขึ้น
ทุกสิ่งที่ฉันกล่าวถึงข้างต้นได้เพิ่มลงในแอพวอลเปเปอร์สด พื้นฐานไม่ยากที่จะคาดเดา Android มีส่วนแบ่งการตลาดที่ใหญ่กว่า iOS แต่ผู้ใช้ iOS ซื้อมากกว่า แอพส่งข้อความได้รับความนิยมอย่างมาก แต่ เกม freemium ทำรายได้สูงสุด จีนอินเดียบราซิลและรัสเซียเป็นตลาดเกิดใหม่ แต่ขาดพฤติกรรมการใช้จ่าย คุณสามารถอ่านไฟล์ แอพดัชนีแอนนี่ สำหรับข้อมูลเชิงลึกเพิ่มเติม
แล้วแอพวอลเปเปอร์สดจะเข้ากับสิ่งนี้ได้อย่างไร? ประการแรกมันกำจัดแพลตฟอร์มส่วนใหญ่ตั้งแต่ไฟล์ วอลล์เปเปอร์สด เป็นสิ่งที่ Android ประการที่สองนี้ ลักษณะเฉพาะ ถูกเพิ่มเข้ามาใน Android 2.1 ดังนั้นจึงมีชุมชนขนาดใหญ่และมีตัวอย่างที่สวยงามมากมาย ที่สะดุดตาที่สุด เปเปอร์แลนด์ และ Roman Nurik’s โอเพ่นซอร์ส พิพิธภัณฑ์ ซึ่งอาจเป็นจุดอ้างอิงที่ดีที่สุดสำหรับการพัฒนา Android
ในขณะที่มีวอลล์เปเปอร์สดมากมาย แต่ส่วนใหญ่อยู่ในหมวดหมู่ทิวทัศน์ / สภาพอากาศและมีน้อยมากที่ตกอยู่ภายใต้ ความน่ารักเกินพิกัด ประเภท. นี่คือสิ่งที่เราต้องการเปลี่ยนแปลงและนำเสนอสิ่งที่ทำให้คุณมีรอยยิ้มทุกครั้งที่คุณปลดล็อกโทรศัพท์แม้ว่าคุณจะปลดล็อกด้วยเหตุผลที่แตกต่างกันโดยสิ้นเชิงก็ตาม เรามอบความสุขเล็ก ๆ น้อย ๆ ให้กับคุณเพื่อกอดคุณก่อนเข้านอนตอนกลางคืนหรือเมื่อคุณปิดนาฬิกาปลุกในตอนเช้า และยิ่งไปกว่านั้นคือทำให้เป็นส่วนตัวและปรับแต่งได้
โดยไม่ต้องกังวลใจอีกต่อไปและก่อนที่เราจะลงรายละเอียดทางเทคนิคฉันภูมิใจเสนอคุณ: Ooshies - วอลล์เปเปอร์สด
คุณสมบัติ:
Ooshies ดูเหมือนจะเป็นไอเดียแอป Android ที่ตรงไปตรงมา วาดภาพพื้นหลังซ้อนทับเมฆและดวงดาววางหมีกับบอลลูนไว้ด้านบนเท่านี้คุณก็พร้อมแล้ว แต่ไม่ใช่มันคือ Android! สิ่งที่ดูเหมือนง่ายมักจะค่อนข้างยากและเรามักจะทำซ้ำ ข้อผิดพลาดทั่วไป ครั้งแล้วครั้งเล่า. นี่คือสรุปสั้น ๆ เกี่ยวกับความท้าทายที่ฉันเผชิญ:
การเร่งฮาร์ดแวร์ - ทำไมต้องใช้ CPU ในเมื่อ GPU ดีกว่ามาก? ปรากฎว่าการวาดบิตแมปบนผืนผ้าใบ ไม่สามารถเร่งฮาร์ดแวร์ได้ . อย่างน้อยก็ไม่ใช่ในขณะนี้
OpenGL - ถ้าเราต้องการเร่งฮาร์ดแวร์เราจำเป็นต้องใช้ OpenGL ES หรือดีกว่า กรอบ ที่ทำงานส่วนใหญ่ให้กับเรา
การโหลดบิตแมป - ปัญหาการใช้หน่วยความจำที่รู้จักกันดี เราจำเป็นต้องจัดสรรหน่วยความจำ 1 ไบต์ [0-255] สำหรับแต่ละช่องใน #ARGB เพื่อแสดงพิกเซลเดียว นอกจากนี้รูปภาพที่เราใช้มักมีความละเอียดสูงกว่าการแสดงผลของอุปกรณ์ การโหลดทั้งหมดจะส่งผลอย่างรวดเร็ว OutOfMemroyException .
ตัวเรียกใช้งานที่บ้าน - วอลล์เปเปอร์สดจะถูกโฮสต์ในขั้นตอนการเรียกใช้ที่บ้านและตัวเรียกใช้งานที่แตกต่างกันมักจะให้การโทรกลับที่แตกต่างกันไปยังบริการวอลล์เปเปอร์สด (โดยเฉพาะอย่างยิ่ง Nova และ TouchWiz)
อายุแบตเตอรี่ - หากทำไม่ถูกต้องวอลล์เปเปอร์สดและวิดเจ็ตอาจทำให้แบตเตอรี่หมดไปได้มาก ด้วยความฮือฮาเกี่ยวกับ Lollipop (Android 5.0) อายุการใช้งานแบตเตอรี่แย่มาก แอพแรกที่จะไปคือวอลล์เปเปอร์สด
ดังนั้นการซ้อนทับบิตแมปวาดภาพบนผืนผ้าใบแล้วสลับเฟรมเมื่อสัมผัสเพื่อกอดกันดูเหมือนจะไม่ใช่เรื่องใหญ่แม้ว่าจะทำบน CPU ใช่ไหม? ถูกต้องไม่ใช่ปัญหา แต่ใครต้องการวอลล์เปเปอร์แบบคงที่? มันเต้นตามวัตถุประสงค์ วอลล์เปเปอร์ควรตอบสนองต่อการสัมผัสของคุณควรเคลื่อนไหวเมื่อคุณเลื่อนหน้าจอหลักของคุณควรแสดงน้ำใจแบบสุ่มและทำให้คุณรู้สึกมีความสุข
และมีเคล็ดลับการพัฒนา Android สำหรับสิ่งนั้น มีศัพท์เรียกว่า ผล Parallax สำหรับการเพิ่มความลึกในพื้นที่ 2 มิติ ลองนึกภาพตัวเองขับรถ บ้านที่อยู่ใกล้คุณเคลื่อนที่เร็วกว่าภูเขาในระยะไกล ผลเช่นเดียวกันสามารถทำได้โดยการเคลื่อนย้ายวัตถุด้วยความเร็วที่แตกต่างกันบนผืนผ้าใบ แม้ว่าพวกมันทั้งหมดจะอยู่ในระนาบเดียวกัน แต่สมองของคุณจะรับรู้ว่าวัตถุที่เคลื่อนไหวเร็วกว่าใกล้คุณมากที่สุด เหมือนเพิ่ม วางเงา เอฟเฟกต์พารัลแลกซ์จะเพิ่มแกน z
และนี่คือจุดที่นรกแตก! ในอุปกรณ์ส่วนใหญ่ที่เคลื่อนย้าย Ooshie การซ้อนทับสภาพอากาศและพื้นหลังด้วยความเร็วที่แตกต่างกันจะทำให้อัตราเฟรมลดลงอย่างมาก วิธีการวาดเฟรมเดียวมีดังนี้
canvas.drawBitmap(background, 0 - offsetX / 4, 0, null); canvas.drawBitmap(weatherOverlay, 0 - offsetX / 2, 0, null); if (!validDoubleTap) { canvas.drawBitmap(ooshieNormal, positionX - offsetX, positionY, null); } else { canvas.drawBitmap(ooshieTapped, positionX - offsetX, positionY, null); }
offset
คือเปอร์เซ็นต์ของระยะทางที่ผู้ใช้เลื่อนไป เป็นการโทรกลับที่เครื่องมือวอลเปเปอร์มีให้:
@Override public void onOffsetsChanged(float xOffset, float yOffset, float xOffsetStep, float yOffsetStep, int xPixelOffset, int yPixelOffset){ super.onOffsetsChanged(xOffset, yOffset, xOffsetStep, yOffsetStep, xPixelOffset, yPixelOffset); // athe current offset should be a fraction of the screen offset to achieve parallax if (!isPreview()) { float newXOffset = xOffset * 0.15f; wallpaperDrawHelper.setOffsetX(newXOffset); if (isVisible() && hasActiveSurface) { wallpaperDrawHelper.drawFrame(false); } } }
ฉันต้องทราบว่าทั้งหมดนี้จะไม่จำเป็นถ้าฉันรู้วิธีทำงานกับ OpenGL! อยู่บนไฟล์ ทั้งหมด เนื่องจากสิ่งที่ซับซ้อนกว่าที่เรามีในตอนนี้จะต้องมีการเร่งฮาร์ดแวร์ แต่ในขณะนี้ฉันต้องทำงานหนักขึ้นไม่ใช่อย่างชาญฉลาด (ฉันเปิดรับข้อเสนอแนะในความคิดเห็น) นี่คือสิ่งที่เราทำ:
ในฐานะผู้สนับสนุนรายใหญ่ของ minSdk=15
ความคิดริเริ่มตั้งแต่เริ่มต้นเราได้กำจัดอุปกรณ์ 2.x ทั้งหมด ความพยายามในการรักษาความเข้ากันได้แบบย้อนหลังนั้นมากกว่ารายได้ที่เป็นไปได้จากผู้ใช้ที่ไม่สามารถ ไม่เต็มใจที่จะอัปเกรดโทรศัพท์ของตน ดังนั้นในกรณีส่วนใหญ่เราจะสามารถใช้งานได้อย่างราบรื่นด้วยตัวเลือกเพิ่มเติมเพื่อปิดใช้งานพารัลแลกซ์หากต้องการ
การเพิ่มประสิทธิภาพที่สำคัญอีกประการหนึ่งคือวิธีที่เราจัดการกับบิตแมป เอฟเฟกต์พารัลแลกซ์ที่คล้ายกันมากสามารถทำได้ด้วยการวาดสองบิตแมปแทนที่จะเป็นสาม:
ซ้อนทับ Ooshie - บิตแมป Ooshie ที่ถูกตัดแต่งและปรับขนาดอย่างระมัดระวัง (สามารถเข้าถึงได้)
การซ้อนทับแบบรวม - พื้นหลังรวมและบิตแมปสภาพอากาศที่เคลื่อนที่ด้วยความเร็วเพียงเศษเสี้ยวของ Ooshie
เคล็ดลับการพัฒนา Android นี้ช่วยประหยัดหน่วยความจำและเพิ่มความเร็วในการวาดภาพเพื่อให้เอฟเฟกต์พารัลแลกซ์ลดลงเล็กน้อย
เมื่อเลื่อนหน้าจอหลักเฟรมจะถูกวาดค่อนข้างบ่อย (ควรจะมากกว่า 30 ครั้งต่อวินาที) สิ่งสำคัญคือไม่ต้องวาดเมื่อมองไม่เห็นหน้าจอหลัก (หน้าจอล็อกบางหน้าลิ้นชักแอปเปิด / สลับแอป ฯลฯ ) เพื่อลดการใช้งาน CPU
ทั้งหมดนี้เชื่อมโยงอย่างใกล้ชิดกับการอัปเดตสภาพอากาศ ในขั้นต้นมีงานที่ทำซ้ำทุก ๆ ชั่วโมงหรือสองชั่วโมงเพื่อซิงค์สภาพอากาศ แต่มันเป็นงานที่เกินความจำเป็นจริงๆ หากผู้ใช้ไม่เห็นวอลเปเปอร์แสดงว่าข้อมูลสภาพอากาศไม่เกี่ยวข้อง ตอนนี้การอัปเดตสภาพอากาศจะเกิดขึ้นเมื่อมองเห็นวอลเปเปอร์เท่านั้น
long lastUpdate = prefStore.getLong(SharedPrefStore.Pref.WEATHER_TIMESTAMP); if (System.currentTimeMillis() - lastUpdate > Consts.WEATHER_UPDATE_INTERVAL){ // update the weather if obsolete Intent intent = new Intent(getApplicationContext(), WeatherUpdateService.class); startService(intent); }
โดยพื้นฐานแล้วนี่คือรายการตรวจสอบสำหรับการวาดภาพบิตแมปซอฟต์แวร์ที่ราบรื่นของหน่วยความจำ:
ฉันไม่สามารถเน้นว่าสิ่งนี้สำคัญขนาดไหน! ไม่เคยฉันพูดซ้ำ ไม่เคย ปล่อยแอปของคุณก่อนทดสอบ! และฉันไม่ได้หมายความว่าคุณควรทำการทดสอบ คุณเขียนโค้ดคุณรู้ว่ามันทำงานอย่างไรและคุณมีอิทธิพลต่อผลลัพธ์โดยการรับรู้ความคาดหวัง ฉันไม่ได้พูดถึงการทดสอบ JUnit (แม้ว่าจะแนะนำ) แต่เกี่ยวกับ การเปิดตัวแบบทีละขั้น เช่น การทดสอบอัลฟาและเบต้า .
หากคุณกำลังพัฒนาซอฟต์แวร์ Android ข้อกำหนดนั้นตรงไปตรงมา แต่นี่คือบทสรุปโดยย่อ:
ผู้ทดสอบอัลฟ่า - กลุ่มเล็ก ๆ ซึ่งประกอบด้วยเพื่อนร่วมทีมและผู้คนจากอุตสาหกรรมโดยเฉพาะอย่างยิ่งนักพัฒนา Android โอกาสที่พวกเขาจะมีอุปกรณ์ระดับไฮเอนด์และจะเล่นกับ ตัวเลือกสำหรับนักพัฒนา . พวกเขาจะส่งสแต็กเทรซรายงานข้อบกพร่องและยังให้คำแนะนำและเคล็ดลับในการเพิ่มประสิทธิภาพโค้ด / UI แก่คุณ สมบูรณ์แบบสำหรับรุ่นแรกที่มีคุณสมบัติบางส่วน / ขาดหายไป
ผู้ทดสอบเบต้า - กลุ่มเป้าหมายที่กว้างขึ้นและมีข้อมูลประชากรที่หลากหลาย ควรเผยแพร่รุ่นที่เสถียรที่นี่ แม้ว่าระดับนินจาของคุณจะสูงเกินไป แต่คุณก็ไม่สามารถคาดเดาได้นับประสาอะไรกับการแจกแจง Android และวิธีที่ผู้คนใช้โทรศัพท์ของพวกเขา
เมื่อเราผ่านอัลฟ่าฉันคิดว่าเราทำสำเร็จแล้ว แต่เด็กฉันคิดผิด! ปรากฎว่าไม่ใช่ผู้ใช้ Android ทุกคนที่มีอุปกรณ์ Nexus ที่มีซอฟต์แวร์ล่าสุด! ใครรู้บ้าง :)
ต่อไปนี้เป็นปัญหาในการพัฒนา Android ตามการเปิดเผยนี้:
เครื่องเรียกใช้งานที่แตกต่างกันมีหน้าจอหลักเริ่มต้นที่แตกต่างกันโดยปกติจะเป็นหน้าจอแรกหรือตรงกลางและเท่าที่ฉันทราบไม่มีทางรู้ตำแหน่งของมันได้
เป็นการยากที่จะวาง Ooshie ไว้ตรงกลางโดยไม่ทราบตำแหน่งหน้าจอหลักเริ่มต้นดังนั้นจึงเป็นแถบเลื่อนการตั้งค่าสำหรับปรับออฟเซ็ตพารัลแลกซ์
ผู้ใช้ทั่วไปไม่รู้ว่าอะไร ชดเชยพารัลแลกซ์ หมายถึง - ควรใช้คำศัพท์ที่ง่ายกว่ามากในหน้าการตั้งค่า
ผู้ใช้แบบสุ่มจะแนะนำคุณสมบัติถัดไปของคุณ
ดังนั้นฉันจึงขอขอบคุณผู้ทดสอบเบต้าของเราทุกคนสำหรับการทำงานอย่างหนัก ฉันหวังว่าการได้รับคุณสมบัติล่าสุดทั้งหมดก่อนใครจะเป็นรางวัลที่ดีสำหรับความทุ่มเทของพวกเขา หากคุณต้องการคุณสามารถเป็นส่วนหนึ่งของเรา Google+ ชุมชนเบต้า .
การสร้างแอป Android ให้โดดเด่นในปัจจุบันนั้นยากกว่าการสร้างแอปเครื่องคิดเลขเมื่อปี 2009 ไม่มีเลยการสร้างแอปที่สมบูรณ์แบบนั้นยาก ส่วนใหญ่เป็นเพราะความสมบูรณ์แบบอยู่ในสายตาของผู้มอง สิ่งที่ดีสำหรับฉันไม่ได้แปลว่ามันดีสำหรับคุณเสมอไป นั่นคือเหตุผลที่การให้แอปเติบโตขึ้นจึงเป็นสิ่งสำคัญ รายการตรวจสอบแผนงานสำหรับคุณลักษณะใหม่แสดงให้เห็นว่าเรามีงานเพียงพอสำหรับทั้งปี 2015 เหนือสิ่งอื่นใดในเร็ว ๆ นี้เราจะรวมถึง:
ตอนนี้เราอาจเก็บแอปไว้ในรุ่นเบต้าจนกว่าจะเสร็จสิ้น แต่ด้วยวิธีนี้เราจะทิ้งข้อมูลที่มีค่าไป ไม่ใช่ผู้ทดสอบเบต้าทุกคนที่จะอุทิศส่วนหนึ่งของวันเพื่อส่งข้อเสนอแนะถึงคุณ นั่นคือจุดที่คุณจะได้รับประโยชน์ในการใช้เครื่องมือเพื่อรับความคิดเห็น คุณสามารถใช้ Google Analytics, Flurry, Mixpanel, Crashalytics, ACRA ฯลฯ เพื่อรวบรวมข้อมูลการใช้งาน
ตัวอย่างเช่นจากการวิเคราะห์ข้อมูลเราสังเกตเห็นว่าผู้ใช้ไม่ได้คลิกปุ่มการตั้งค่ามากนักเราจึงทำให้มันชัดเจนมากขึ้นและเพิ่มบทแนะนำสั้น ๆ สำหรับการปรับแต่งการตั้งค่า
แม้ว่านี่จะเป็นกระบวนการเบื้องหลัง แต่ก็สามารถใช้เพื่อปรับปรุงประสบการณ์ของผู้ใช้ได้ต่อไป ทำไมไม่แสดงให้ผู้ใช้เห็นว่ากี่ครั้ง:
สิ่งนี้มีความสำคัญเนื่องจากให้ผลของการกระทำของพวกเขา อย่าทำผิดพลาดแบบเดียวกับที่ระบบการศึกษาของเราทำทำให้ผู้ใช้เป็นผู้บริโภคเนื้อหาที่ไม่โต้ตอบ ทำให้พวกเขารับผิดชอบ ให้ทางเลือกแก่พวกเขาในการควบคุมอุปกรณ์ของตนเองและสร้างประสบการณ์ส่วนตัวของตนเอง หากคุณจัดการแพ็กเกจทั้งหมดนี้เป็นชุดน่ารักที่ขโมยรอยยิ้มในการสาดครั้งแรกไม่ไกลเกินกว่าที่จะเรียกผู้ใช้เกี่ยวกับความโปรดปรานของสแปมสำหรับการปลดล็อกเนื้อหา
ท้ายที่สุดคุณต้องพัฒนาแอป Android โดยใช้ข้อมูลนี้เป็นแนวทาง แม้ว่าจะมีไว้สำหรับคุณแม่ / เด็กเป็นหลัก แต่แอปนี้อาจเป็นที่นิยมในกลุ่มประชากรอื่น ๆ อาจไม่เข้ากับวิสัยทัศน์เดิมของเรา แต่ผู้ใช้ต้องได้รับการตอบสนอง มิฉะนั้นพวกเขาจะพบคนที่สามารถทำได้
กลับไปสู่ความล้มเหลวที่ประสบความสำเร็จที่สุดของฉัน ทวีตพาย . แม้จะได้รับรางวัลและการรายงานข่าวมากมาย แต่แอปก็ไม่สามารถรักษาผู้ใช้ของแอปไว้ได้ (สาเหตุที่อยู่นอกเหนือขอบเขตของบทความนี้)
ความสำเร็จมักไม่ปรากฏ ขอบคุณประสบการณ์ทั้งหมดที่ฉันได้เรียนรู้มากมาย อย่างน้อยฉันก็บรรยายเกี่ยวกับ วิธี (ไม่) ล้มเหลวในการเริ่มต้น ในกิจกรรมต่างๆและแฮ็กกา ธ อนและได้รับลูกค้าสองสามรายที่ ApeeScape
ที่สำคัญกว่านั้นคือฉันพยายามที่จะไม่ทำข้อผิดพลาดในการพัฒนา Android ซ้ำกับ Ooshies โดยทำตามคำแนะนำและเคล็ดลับในคู่มือนี้
ในการสรุปคู่มือฉบับยาวนี้สิ่งที่เรากำหนดว่าเป็นความสำเร็จคือในระยะต่อมาควบคู่ไปกับสิ่งที่เราตั้งไว้เป็นเป้าหมายในตอนแรก ตัวชี้วัดความสำเร็จที่พบบ่อยที่สุดคือการทำเงินได้มาก ไม่ว่าแอปของคุณจะสร้างหรือไม่ก็ตามคุณต้องพยายามทำให้มันเกิดขึ้นและเชื่อฉันในตอนท้ายคุณจะกลายเป็นคนที่ดีขึ้น (หวังว่าแอปจะสามารถเรียนรู้ OpenGL ได้) คุณจะได้เพื่อนใหม่ศัตรูไม่กี่คนและถ้าคุณโชคดี / ฉลาดพอคุณจะทำให้ผู้ใช้จำนวนมากมีความสุข
คุณสามารถตรวจสอบไฟล์ เว็บไซต์ หรือดาวน์โหลด Ooshies เพื่อทดลองใช้