Jump to content
Mini0n

Programação Android

Recommended Posts

Ora então fica aqui uma thread para o pessoal que desenvolve para Android poder partilhar coisas interessantes ou tirar dúvidas.

Estes primeiros posts foram movidos da thread [Android App] Notification Agenda

-----------------------------------------------------------------------------------------------------------

Btw, Naz, tens bons sites de Android Dev 101? Algum(ns) especial(is) que recomendes?

Share this post


Link to post
Share on other sites

Btw, Naz, tens bons sites de Android Dev 101? Algum(ns) especial(is) que recomendes?

Não sei se te interessa, mas o da está prestes a lançar a xda university

XDA is visited by thousands of developers who offer their work to the community for the sake of pushing development forward. Most of these developers are self-taught. They learned by doing, and they learned by reading. There are many users on XDA who want to get into development but don’t know where to get started. On XDA, you can find guides, tutorials, and tools that go a long way in imparting the knowledge to start developing. But, these pieces are often scattered around, making them difficult to find. So we wanted to do something about it and make it a lot easier for aspiring developers to learn.

Launching soon, XDA-University.com will be a place to learn Android development, whether that’s learning how to root a phone, to embarking on more complex endeavors like building Android from source. XDA-U will be a crowd-sourced initiative that aims to be an always-growing, always-improving part of the Android community. There will even be a book, available as a free downloadable PDF, for those that want to really immerse themselves in the craft.

Right now, you can sign up on XDA-University.com, and we’ll send you an email when the site gets closer to launch.

É grátis e podes registar-te aqui

http://xda-university.com

  • Like 1

Share this post


Link to post
Share on other sites

Pelo que vi da aplicação, não me parece haver stress nenhum. :y:

Uma cena, qual a API mínima que usaste?

Pelo que estive a ver, os menus com tabs, swipes e dropdowns só funcionam na 14... :mellow: Queria fazer uma app para, pelo menos a API 8 (2.2) e estou a ver que não vai ser fácil lol

Share this post


Link to post
Share on other sites

Btw, Naz, tens bons sites de Android Dev 101? Algum(ns) especial(is) que recomendes?

Eu quando comecei a programar para Android dei uma vista de olhos à documentação pelo básico para perceber como funcionava o Android. A partir daí, aquilo que precisava de fazer em concreto, procurava e aprendia. Mas se procuras algo que te ensine com um inicio e fim, recomendo-te estes vídeos:

http://www.youtube.c...4F010EEF9D45FB8

Eu ainda os comecei a ver, mas perdi a paciência... Pode ser que tu tenhas mais do que eu. Tirando isso, também tenho nos bookmarks os tutoriais deste gajo que acho muito bons: http://www.vogella.com/android.html

De resto não tenho mais nada... Uso a documentação que também tem bons tutoriais/guias e ao sacares o SDK aquilo tem bué de samples com montes de código que ajuda a perceber coisas especificas. O restante é pesquisas e pedidos de ajuda no StackOverflow.

Uma cena, qual a API mínima que usaste?

Pelo que estive a ver, os menus com tabs, swipes e dropdowns só funcionam na 14... mellow.png Queria fazer uma app para, pelo menos a API 8 (2.2) e estou a ver que não vai ser fácil lol

Até à versão actual estava a usar a API 4 (1.6), mas a próxima o mínimo vai ser a API 7(2.1) precisamente por causa disso.

Usa a ActionBarSherlock para isso tudo, o mínimo necessário é a 7, não tens problema nenhum wink4.gif

Edited by Mini0n

Share this post


Link to post
Share on other sites

Tive a ver o ActionBarSherlock e está muito bom, definitivamente melhor do que trabalhar com os defaults do android :y:

Share this post


Link to post
Share on other sites

Ya, por acaso está nice.

Tenho andado a ver os tutoriais que o Naz deixou, do YouTube, mas o que me falta são as best practices.

Tenho de ver um sample duma app bem estruturada para saber como fazer isto e aquilo da melhor maneira.

E esse gajo dos tutoriais não deve preceber boi de programação... um gajo que, ao fazer um método (public void xpto()), diz que "public" é por ser uma função acessível de qualquer lado e "void" é por ser uma função e nas funções põe-se void. :mellow:

Share this post


Link to post
Share on other sites

lol.

A função pode nao retornar nada! Ele pode pensar que tal coisa é impossivel!

Share this post


Link to post
Share on other sites

Sim, as funções que ele fala não retornam nada. Isso está certo.

Mas ele diz mesmo que "põe-se void porque é uma função". É como se põe o function no javascript, por exemplo lol

E nota-se que há merdas que ele diz porque viu ou decorou e não porque percebe.

Mas lá está, para quem nunca mexeu nisto, até é um bom tutorial. Tem bué boas críticas.

Mas não me ajuda muito porque o que eu preciso é de saber como faço a "gestão" das classes que vão ter os meus dados, qual a melhor maneira de usar as activities, etc.

Btw, Naz, como fizeste a cena do Slide Tabs se tens o mínimo API 7? Também com uma cena tipo a do Sherlock, que usa a mais avançada se der ou bota uma alternativa se não der?

Ah e outra cena que falei no outro dia. Eu estou a fazer para mínimo API 7. Mas se testar num ICS, os inputs e botões aparecem-me com aspecto "antigo".

Isso não devia ir ao SO fazer o aspecto do elemento?

Share this post


Link to post
Share on other sites

Tenho andado a ver os tutoriais que o Naz deixou, do YouTube, mas o que me falta são as best practices.

Aqui tens duas hipóteses. Aprendes isso com o tempo que foi como eu fiz e depois acabei por reescrever a aplicação toda por esse motivo (entre outros) lol... A estrutura do código e a forma como o organizo em ficheiros está bastante diferente agora. A segunda hipótese é fazer o que disseste, ver algum projecto já bem estruturado e perceber mais ou menos como é que o pessoal faz as coisas.

Exemplo de como tenho agora:

JFua.png

Antes estava tudo no mesmo package/pasta e fica uma confusão tremenda... Para não falar naqueles ficheiros utils que dantes tinha todo num só ficheiro e ficava muito confuso. Mas isto é só um exemplo e mistura a minha forma de organizar com aquilo que vejo em alguns projectos.

Mas nesse caso vais encontrar coisas bastante diferentes porque não existe nenhuma boa prática de como estrutura uma app Android, nenhum standard que um gajo se possa basear. O que me chateia mais às vezes é que nomes dar aos recursos todos que se usa numa aplicação de forma que fique claro e conciso a quê que se referem.

Mas uma app que te recomendo para isso é a oficial do Google I/O, tens o código todo no Google Code. Baseei muito da organização da minha app em alguns conceitos que eles aplicam na deles. Outros faço a minha maneira conforme acho melhor.

E esse gajo dos tutoriais não deve preceber boi de programação... um gajo que, ao fazer um método (public void xpto()), diz que "public" é por ser uma função acessível de qualquer lado e "void" é por ser uma função e nas funções põe-se void. mellow.png

Não me lembro de ter reparado em pormenores como esses, mas como disse, eu vi muito poucos tutoriais desses vídeos. Eu só os recomendei porque ajuda a ter uma noção do básico/essencial em programação para Android. Apesar de lá mais para frente ter coisas avançadas. Mas uma coisa também é verdade, é capaz de ter aí alguns tutoriais que já não são boas práticas de como fazer certas coisas, Android tem evoluído muito.

Btw, Naz, como fizeste a cena do Slide Tabs se tens o mínimo API 7? Também com uma cena tipo a do Sherlock, que usa a mais avançada se der ou bota uma alternativa se não der?

Mais ou menos isso, só que neste caso é oficial, o componente em si chama-se ViewPager. Como sabes, com novas versões de Android saem novas funcionalidades. Por exemplo, nas notificações em particular, a cada nova versão há coisas novas (o que a mim me deixa especialmente irritado lol). E como tal, o suporte para essas novas funcionalidades vêm com as novas APIs. Mas a Google tem a Support Library que faz um backport dessas funcionalidades para versões mais antigas, é isso que estou a usar. No caso da ActionBar é que não fizeram (sabe-se lá porquê) e surgiu então a ActionBarSherlock.

Já agora, o que o ViewPager faz é só mesmo um slide de páginas. Aquele indicador que tenho em cima a indicar a página não faz parte do ViewPager nem tão pouco existe oficialmente em qualquer API (mais uma daquelas decisões estranhas da Google, mas pronto). O que estou a usar é o ViewPagerIndicator que por acaso é do mesmo autor da ActionBarSherlock, apesar de existir mais uma alternativa se não estou em erro, possivelmente com efeitos diferentes e etc...

Ah e outra cena que falei no outro dia. Eu estou a fazer para mínimo API 7. Mas se testar num ICS, os inputs e botões aparecem-me com aspecto "antigo".

Julgo que isso tenha a ver com o targetSdk que defines no AndroidManifest. Eu tenho o mínimo para 7 mas o target para 16 (Jelly Bean). Se não definires nada, ele usa o mesmo que o miniumSdk para o targetSdk e isso faz com que a app ignore tudo que exista acima dessa API, tal como os resources novos... Se queres que a app os use caso esta esteja a correr numa versão mais recente do Android, tens de dizer que a app suporta directamente essa versão e para isso usas o targetSdk.

Pessoalmente tento sempre manter isso actualizado com a última versão do Android, mas nem sempre é preciso. Por exemplo, nesta última versão vou passar de um target de 15 para 16, pura e simplesmente porque estou a usar algo para as notificações que só existe na 16, se não tinha deixado ficar na 15 já que isso não ia ter qualquer impacto.

E já agora fica um aviso, ao fazeres isto desta forma, o IDE vai-te mostrar todos os métodos e resources das APIs novas e podes usa-los, mas tens de ter cuidado que não as podes usar em versões antigas ou isso crasha. Basicamente tens de manualmente verificar qual a versão que está a correr e usar ou não esse método/resource.

Exemplo da minha app:


Notification notification = builder.getNotification();

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {

notification.priority = Notification.PRIORITY_HIGH;

}

mNotificationManager.notify(R.string.app_name, notification);

O campo priority da notificação só existe em JB, logo tenho de fazer isto para não o usar em versões anteriores...


Se quiseres e se calhar é melhor, cria um tópico com dúvidas Android e tudo que quiseres perguntar põe lá e eu vou tentando responder o melhor que souber. E até pode existir mais alguém por aí que saiba programar em Android e é mais fácil e rápido tirar dúvidas e discutir problemas :)

Share this post


Link to post
Share on other sites

Deduzi que não houvesse standard, mas por exemplo, ver aí a tua estrutura, já dá para ter uma ideia base do que me pode esperar.

E é preferível a ter de ver 50 vídeos até que algum me indique isso :P

Isto parece-me, para quem vem de programação e gosta, não ser nada de muito complicado. A prática é que vai ditar as coisas, basicamente. Essa do targetSDK já tinha visto mas ignorei porque pensei que em nada fosse influenciar a app. :facepalm:

Dicas que tenham, boas sources (como a que o Perks cá referiu) e cenas assim, botem-nas aqui. :y:

Share this post


Link to post
Share on other sites

Queres inventar o próximo facebook? :P

Vou começar por uma app simples. Já há apps que façam o mesmo, não vou inventar nada. Mas é mesmo para começar simples.

E claro, querendo eu arranjar emprego no mundo da programação, sabendo programar para Android é uma mais valia. :y:

Share this post


Link to post
Share on other sites

Vou começar por uma app simples. Já há apps que façam o mesmo, não vou inventar nada. Mas é mesmo para começar simples.

Foi o que eu fiz (e estou a fazer). É tentar fazer melhor do que o que já existe e ter um bocadinho de sorte e ainda se consegue ter uma boa base de utilizadores :)

Share this post


Link to post
Share on other sites

Como anda essa aprendizagem em Android Mini0n? Já tens algo para mostrar ao pessoal?

Mas eu vim mais a este tópico com o propósito de chamar à atenção a quem tenha escapado este outro tópico e que por acaso esteja interessado em trabalhar profissionalmente com Android (ou iOS).

Se a área do desenvolvimento mobile vos interessa, façam como eu fiz e como o Mini0n está a fazer... Peguem numa ideia que achem interessante (ou força com uma ideia original, caso a tenham) e façam uma app. Levem o vosso tempo a aprender, façam-na bem feita, façam melhor do que o que está no mercado, trabalhem nela e vejam os downloads a subir...

Mais tarde, quem sabe se essa app não vos garante um emprego na área!? Se for aquilo que estão à procura, claro. ;)

Edited by Nazgulled

Share this post


Link to post
Share on other sites

Nunca mais peguei nisto. :/
Entretanto arranjei emprego e o tempo já foi ocupado.

Mas queria ver se me orientava para voltar a pegar nisto.

Share this post


Link to post
Share on other sites

Estive e depois deixei de estar loles. Na altura que se falou disto (Outubro), estava a fazer parte dos 16%.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.