Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] [OFF-TOPIC] Até que ponto vale a pena "encher" o seu aplicativo de libs?

Não vejo problema de se utilizar bibliotecas, algumas são bem úteis.

Pra q reinventar a roda né?

Em 19/09/2015 7:46 PM, "Rodrigo Piovezan" <piovezan@gmail.com> escreveu:
Kalinna, eu sou como o seu amigo. Gosto de fazer as coisas com o mínimo de libs possível. Só adoto uma lib quando passo pelo problema que ela resolve e entendo bem o problema (acho que isso fixa melhor os conceitos na minha cabeça). E se adoto a lib, gosto de entender o que ela faz. É o meu jeito. Entendo que por um lado é limitante, mas por outro tenho bastante orgulho do conhecimento básico sobre Android que já adquiri (mas que talvez nem todo mundo sinta necessidade de ter). Um palestrante da conferência de Android da iMasters este ano fez uma recomendação nessa linha: "passe pela experiência de fazer um aplicativo sem libs" (a mesma em que o Nelson Glauber recomendou usar libs, heheheh).

Atualmente estou experimentando fazer um app do zero usando o framework Android. Ele usa fragmentos e faz operações assíncronas não muito demoradas (como chamadas a webservices) em um headless retained fragment, que é o mecanismo que o Android oferece para essas operações durarem além do ciclo de vida de destruição e recriação de activities (para operações mais demoradas, como downloads de arquivos, seria melhor usar um Service). Quem tentou girar a tela enquanto o aplicativo chama uma URL sabe que um aplicativo que se preze deve suportar essa limitação do ciclo de vida das activities/fragments e que AsyncTasks convencionais não são uma boa ideia devido ao seu desacoplamento com esse ciclo de vida.

Além disso, se o aplicativo que está em primeiro plano na tela for para segundo plano enquanto executa uma operação, o ideal a meu ver é que o resultado fique guardado até ele voltar para primeiro plano. Para isso tive que fazer minha própria versão de AsyncTask que tem esse comportamento de adiar o onPostExecute() para o momento apropriado, quando o fragmento se reacopla (reattach) à activity. Fiz também um ExecutanteDeOperacoesAssincronas que gerencia as várias "AsyncTasks" que podem executar ao mesmo tempo.

Somente esse código, que eu diria ser básico de um aplicativo Android que consome webservices ou carrega imagens, já é uma boa dose de boilerplate para se fazer a cada novo aplicativo (não mencionando o LruCache que fiz para imagens), a não ser que seja encapsulado em uma biblioteca. E na hora de usar, veja como fica uma chamada a operação assíncrona feita com o código, disparada de um fragmento que deseja exibir uma imagem trazida de uma URL:

    @Override
    public void onPictureRequested(final String url) {
        mFragmentoDeOperacoesAssincronas.executar(new OperacaoAssincrona<Void, Bitmap>() {

            @Override
            public Bitmap doInBackground() {
                return carregarBitmap(url);
            }
           
            @Override
            public void onPostExecute(Bitmap result) {
                if (mCurrentContentFragment instanceof PicturesFragment) {
                    ((PicturesFragment)mCurrentContentFragment).onPictureRetrieved(url, result);
                }
            };
        });
    }

Essa complexidade pode tornar atrativo para alguns o uso de um event bus.

Em relação à testabilidade do código não sei o que dizer, pois não tenho experiência com isso em Android para dizer qual das opções é mais testável, se é que existe diferença. Acredito que um passo necessário para se obter código testável é implementar um MVP (a variação de MVC que parece ser mais recomendada para Android), o que tentarei fazer futuramente. Também não sei dizer se um event bus é ortogonal ao MVP, para que possam ser usados juntos, ou se vai contra ele (desconfio que a última alternativa seja a mais provável).

2015-09-18 15:46 GMT-03:00 Elias HH Neto <eliashhneto@gmail.com>:
Como o Nelson Glauber comentou em um post do Google+, até mesmo vídeos oficiais do Google já mencionaram bibliotecas.

https://www.youtube.com/watch?v=HY9aaXHx8yA&linkId=15953431 - Pre-scaling Bitmaps (100 Days of Google Dev)


Elias Neto


On Fri, Sep 18, 2015 at 3:37 PM Eduardo Baião <eduardobaiao@gmail.com> wrote:
Eu acredito que hoje em dia desenvolver apenas com o que o SDK oferece é pedir para sofrer.

Não conseguiria ficar sem usar algumas das bibliotecas oferecidas pela Square:
http://square.github.io/

Geralmente o Google-way vai te obrigar a digitar mais código.



Em sex, 18 de set de 2015 às 11:59, <kalinnaborges@gmail.com> escreveu:
Gente,

Eu estava conversando com um amigo ontem a respeito do desenvolvimento android  e fui perguntar a ele algumas dicas, a respeito de bibliotecas para fazer isso, aquilo, etc.
Foi ai que então ele me disse que geralmente ele não utiliza bibliotecas para nada. Sempre desenvolve o máximo possível utilizando o conteúdo original do android. Segundo ele, dependendo da biblioteca, se perde o controle, e portanto ele gosta mais de desenvolver as coisas bem na "mão". Dessa forma, ele tem total controle sobre aquilo que ele faz e que "encher" o aplicativo de bibliotecas (na maioria das vezes até desnecessárias) torna isso o programador um pouco preguiçoso, e viciante nesse tipo de coisa.

Bom, sei que é a opinião dele, e cada um faz o que quer. Como ele tem seu próprio negócio, certamente para ele isso não é nenhum problema.

Agora eu gostaria da opinião de vocês (se possível) sobre isso. Levando em consideração a minha experiência (Estou começando mais agora), vale realmente a pena trabalhar diretamente com as coisas originais do android, ou eu vou perder muito tempo fazendo isso? E se eu utilizar as diversas bibliotecas, vou perder conceitos básicos de programação mobile, uma vez que essas bibliotecas irão ajudar bastante?





--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário