Nhà phát triển nên biết / địa chỉ nào để xây dựng Ứng dụng Android thương mại? [đóng cửa]


21

Phát triển Android và di động là một lĩnh vực phát triển thú vị. Vì đây là một ngành học mới, nhà phát triển Android sẽ mong đợi gì để xây dựng các ứng dụng thương mại mạnh về mặt kỹ năng? Vấn đề mà tôi và, tôi nghĩ, nhiều "noobs" khác trong công nghệ muốn biết là các lĩnh vực kỹ năng kỹ thuật và sự phát triển đến các chủ đề nâng cao cần thiết vượt ra ngoài những điều cơ bản do Google cung cấp. Có rất nhiều thông tin khá hữu ích nhưng nó không được sắp xếp thành các loại kỷ luật cũng như trật tự.

Cập nhật : Nhìn vào nó theo cách này. Nếu bạn là một nhà phát triển cấp cao và cần có một đồng nghiệp tăng tốc trên Android cho một dự án cụ thể, (theo ý của bạn cho câu hỏi này), bạn sẽ làm gì?


Theo thương mại, bạn có nghĩa là "chất lượng thương mại" hay "để kiếm tiền" và nếu sau này bạn có nghĩa là bằng cách kiếm một công việc trong khu vực hoặc bằng cách viết và bán ứng dụng cho chính mình?
Jon Hopkins

@Jon. Không loại trừ bất kỳ khu vực nào. Nhưng (tôi nghĩ), có rất nhiều nhà phát triển ngoài kia như tôi muốn mở rộng tổ chức hiện tại của họ một cách hiệu quả trên các thiết bị. Vì vậy, điều đó không thực sự liên quan đến việc "kiếm tiền" hoặc nhận một công việc mới, chỉ đơn giản là mở rộng doanh nghiệp cho các giám đốc điều hành đói khát thông tin / các chiến binh Đường.
tức giận

Những gì tôi đang tìm kiếm là lời khuyên từ các nhà phát triển cao cấp trong Android, những người có "ooh! Bạn nên đọc cái này trước, sau đó cho HTTP, hoặc cái này để thiết kế Giao diện hấp dẫn và cái này để vẽ những khoảnh khắc 2D / 3D ...". Tôi đã cập nhật câu hỏi của tôi để phản ánh điều này.
tức giậnITguy

Câu trả lời:


16

Có một số khía cạnh cho câu hỏi này:

Từ quan điểm kỹ thuật , trả lời "Làm thế nào?"

Có một số công nghệ để làm chủ cộng với một số "tốt đẹp để có".

  1. Số một là Java . SDK Android dựa trên giả định rằng tất cả các ứng dụng được viết bằng Java . Mặc dù có thể cho rằng có một số giải pháp bên thứ ba mới nổi để phát triển trong .net (xem monodroid ), sau tất cả, hệ điều hành cơ bản là Linux.

  2. Thứ hai là nhật thực . Mặc dù có một số SDK bên thứ 3 xung quanh, một số Betters hơn ADT, trên Intellij hoặc trên Netbeans , những nỗ lực của Google hiện chỉ chính thức tập trung vào nhật thực.

Chỉnh sửa: Kể từ tháng 1 năm 2016, Google chính thức hỗ trợ Android Studio làm IDE chính thức.

Trong kiến ​​trúc Android, có một số khối xây dựng mà một chút phơi sáng sẽ luôn hữu ích:

  1. SQLite

  2. Khái niệm chung về truyền phát video và âm thanh, codec. Đối với OpenCore (android.media).

  3. Bản vẽ OpenGL.

  4. Các dịch vụ Web dựa trên REST, XML hoặc JSON.

  5. Các khái niệm liên quan đến kiến ​​trúc ARM để phát triển Mã gốc.

Ngoài ra, đọc trong bát pha lê của tôi, các nhà phát triển Android cũng nên biết Linux của họ và thành thạo ngôn ngữ bản địa cho đến ngày khi Google bỏ Java và thay thế nó bằng cách đi hoặc một số thứ khác mà họ có thể sản xuất ở đâu đó (xem sáng kiến ​​" Khách hàng bản địa " của họ trong miền trình duyệt). Google đã phát hành NDK (Bộ công cụ phát triển bản địa) cho c và C ++ bằng cơ chế JNI tiêu chuẩn để bổ sung cho Dalvik.

Từ quan điểm thương mại , trả lời "Cái gì?".

Tất nhiên, các nhà phát triển Android nên là người dùng Android. Tuy nhiên, không chỉ người dùng điện thoại di động tiêu chuẩn mà cả người dùng máy tính bảng. Họ thực sự nên áp dụng thái độ của Jobs - luôn tự hỏi "Làm thế nào tôi có thể làm điều đó tốt hơn với điện thoại, máy tính bảng của tôi hoặc bất kỳ thiết bị điện tử tiêu dùng chưa có trên thị trường nào?".

Có rất nhiều ứng dụng Android chưa có người dẫn đầu thị trường, không nhất thiết phải liên quan đến tính di động (hoặc ứng dụng "pizza ở đâu là gần nhất"?). Dưới đây là một vài cái tôi không thể thoát ra khỏi tâm trí của mình (cho đến khi tôi có nhiều thời gian hơn ;-).

  1. dạy bé vẽ và đọc.

  2. Flashcards để học ngoại ngữ.

  3. Hướng dẫn truyền hình Anh-FreeSat + điều khiển từ xa.

  4. của bạn ở đây (công thức nấu ăn ... vv).


Tôi thích câu trả lời của bạn, bạn có thể cung cấp một số liên kết mà bạn đã sử dụng cho SQLLite, Webservice / REST / JSON và OpenGL không?
tức giậnITguy

12

Thành thật mà nói, tôi nghĩ bạn chỉ cần Google và thực hiện một số nghiên cứu.

Dưới đây là một số liên kết thú vị tôi tìm thấy, có thể cung cấp một điểm khởi đầu tốt.

Có rất nhiều người khác bổ sung vào tài liệu Google mà bạn đã thảo luận.

Hy vọng điều này sẽ giúp bạn bắt đầu, tìm kiếm các chi tiết bạn muốn!

Chúc may mắn


xin chào, xin lỗi nếu điều này là ngớ ngẩn nhưng tôi mới ở đây! Tại sao điều này sẽ được bỏ phiếu xuống? Lý do tôi hỏi là tôi nhận thấy không ai khác trả lời câu hỏi này và đôi khi (dù sao tôi cũng nghĩ vậy) bạn chỉ cần đi xa và tự mình tìm ra câu trả lời. Đó là tất cả những gì tôi đã đề xuất với một số điểm bắt đầu cơ bản, vậy có gì sai với điều đó?

+1 để chống lại tiêu cực. Thêm vào đó, nó cung cấp một số liên kết tốt :)
Darren Young

@Darren Young - cảm ơn, nhưng tôi chỉ quan tâm đến lý do tại sao nó có thể được bỏ phiếu xuống. Vì vậy, tôi có thể sử dụng trang web tốt hơn nhưng +1 luôn được chào đón!

@Digger. Cảm ơn thông tin đó. Đây là thứ cấp nhập cảnh mà tôi đã quản lý để tìm thấy. Tôi đã hy vọng rằng các nhà phát triển cao cấp hơn sẽ / sẽ nhảy vào và đưa câu trả lời này xa hơn một chút. +1
tức giậnITguy

@giulio - cảm ơn, hy vọng bạn tìm thấy thông tin bạn đang tìm kiếm.

5

Hướng dẫn dành cho nhà phát triển chính thức của Google

Tôi sẽ xem hướng dẫn dành cho nhà phát triển của Google dành cho Android, bao gồm các hướng dẫn và thực tiễn tốt nhất để làm cho ứng dụng của bạn phù hợp với giao diện của ứng dụng Android.


Cảm ơn. Tôi đã phát hiện ra Google SDK và hướng dẫn dành cho nhà phát triển ( developer.android.com/guide/index.html ). Nhưng thấy rằng còn thiếu rất nhiều cho việc phát triển và triển khai ứng dụng cấp thương mại.
tức giậnITguy

3

Hai điều tôi sẽ xem xét. Một là hướng dẫn thiết kế Táo để xây dựng ứng dụng. Tôi biết rằng câu hỏi là về Ứng dụng Android nhưng các nguyên tắc bao quát được áp dụng và khiến bạn suy nghĩ theo cách thiết kế 'Ứng dụng', điều này thực sự khác biệt so với quan điểm thiết kế ứng dụng máy tính để bàn.

Ngoài ra, tôi sẽ xem Appcelerator Titanium, một công cụ cho phép bạn chuyển mã từ môi trường loại javascript / web dev sang mã gốc trên iPhone, iPad và Android. Tôi đã tìm thấy nó một cách hữu ích để làm cho các ứng dụng nhỏ một cách nhanh chóng. Bạn có thể tải xuống ví dụ Sink Chìm bếp ', đúng như tên gọi, thể hiện tất cả các chức năng gốc có sẵn. Tôi chắc chắn sẽ đề nghị đây là một nơi để bắt đầu.


Cảm ơn đã nhìn vào Titanium. Tôi đã cập nhật câu hỏi để giúp người trả lời với những gì tôi đang tìm kiếm trong câu trả lời.
tức giận vào

2

Tôi thường tìm thấy 3 điều còn thiếu ở các nhà phát triển di động mới, sau các kỹ năng cơ bản với ngôn ngữ lập trình cần thiết và kiến ​​thức về các công cụ và thư viện SDK (không phải là khoa học tên lửa ... 14 tuổi đã phát triển ứng dụng).

  1. Phát triển cho các môi trường bị hạn chế. CPU, bộ nhớ, pixel hiển thị và nguồn pin có sẵn đều hạn chế hơn nhiều trên các thiết bị di động. Một số lập trình viên chưa bao giờ được tiếp xúc với lập trình nhanh và nhỏ. Bạn không thể nghĩ giống như cách giải quyết vấn đề như bạn có thể có khi có một giá với 5kW công suất và làm mát, v.v. Tìm hiểu một số thủ thuật mà các bộ định thời cũ sử dụng để mã hóa các trò chơi tuyệt vời trên CPU 1 MHz với 48kB của bộ nhớ, hoặc một số như vậy. Có thể thực hành mã hóa trên Arduino hoặc bộ điều khiển nhỏ khác.

  2. Giao diện người dùng quen thuộc. Một người dùng thường tương tác với thiết bị di động của họ theo những cách khác nhau từ các hệ thống máy tính để bàn. Mang một cái xung quanh. Có thể vài mô hình. Sử dụng chúng. Sử dụng nhiều ứng dụng và phê bình (không phải tính năng, nhưng) chúng dễ sử dụng như thế nào, trong điều kiện ánh sáng xấu, trong các phương tiện di chuyển nảy, v.v. Đọc và đọc lại tất cả các HIG di động khác nhau. Biết những gì người dùng thích và không thích về nền tảng UI cụ thể mà bạn đang mã hóa.

  3. Quirk quen. Một số công cụ và thư viện là mới và có "quirks". Đọc các bảng của nhà phát triển về các vấn đề và giải pháp để bạn không bị mắc kẹt khi mắc lỗi tương tự mà hàng trăm nhà phát triển khác đã vấp phải. Tôi thấy có quá nhiều câu hỏi về stackoverflow về cách thực hiện những thứ mà phần cứng, API hoặc mô hình phân phối ứng dụng thậm chí không cho phép. Toàn bộ các công ty đã lãng phí thời gian của họ để cố gắng làm điều không thể cho cửa hàng Ứng dụng iPhone.


intteresting .. bạn có thể cung cấp bất kỳ tài liệu tham khảo cho các trang web bao gồm các chủ đề đó?
tức giận vào ngày

1

Tôi đã huấn luyện Junenson của mình theo cách này.

Bước 1: Tôi yêu cầu họ xem một số Ứng dụng miễn phí trên thị trường Android và cả các bản trình diễn API vì họ cũng có thể lấy một số ý tưởng. ( Http://developer.android.com/resource/samples/ApiDemos/index.html ) và cả http://www.androidpeople.com/

Đối với trường hợp: Ứng dụng IBNLive dành cho Android Bởi vì khi họ nhìn thấy ứng dụng này, họ có thể có một ý tưởng sơ bộ rằng đây là những điều có thể, tại sao chúng ta không thể sử dụng / thiết kế, điều khiển hoặc chức năng như thế này.

Bước 2: Khi họ đã có được Hy vọng, bằng cách xem Ứng dụng hiện có, họ có thể tìm kiếm Google cũng như Hướng dẫn dành cho nhà phát triển Android, đóng vai trò là Kinh thánh cho Android và biết.

Đối với trường hợp: Người lớn của tôi có một ý tưởng, về Chế độ xem danh sách có thể mở rộng và Thông báo đẩy, sau đó tìm kiếm, làm thế nào chúng ta có thể thực hiện những điều này, sau đó họ tìm thấy Thông báo đẩy, chúng ta có thể sử dụng Tin nhắn thiết bị trên đám mây 2, sau đó họ nghiên cứu về điều đó và thực hiện một cách xuất sắc.


0

Quan trọng hơn nhiều so với các kỹ thuật (có thể học và không nên quá khó) dù sao cũng phải biết phải làm gì, cho ai và liệu bạn có thể bán đủ số đó không. Phần cuối cùng đó vẫn là một vấn đề trên Android, trái ngược với iOS.

Vì vậy, trước khi bắt đầu học phát triển Android, hãy hình thành một bức tranh rõ ràng về những gì bạn muốn đạt được, làm thế nào để đạt được nó và liệu điều đó có thực sự bền vững hay không.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.