I had this experience when I started working on Karma's Android app. I basically started out by copying the entire iOS architecture to Java. It helped me get started quickly without having to make too many hard decisions early on, but I did have to rewrite some things after I became more experienced and learned there was a better, more Android idiomatic, way of doing it.
The thing that helped me the most is that I became part of the community. Some of them explained to me why I was wrong and then taught me a better approach.
My opinion on the idioms, best design practices, etc... when learning a new language may differ. I almost always feel like some people just understand everything and I am always running to catch up. It turns out no one was born to think in base2 and these individuals just spend a lot of time reading the docs, hacking around on small apps and really taking the time to understand not the how but the why. So I often have to convince myself, you will get there too it just takes time and practice. Rarely does anyone learn a new language in a weekend and put out top notch, idiomatic code, and if you do come work for me so I can sit back on the beach all day. No one picks up a guitar and shreds out Eruption from Eddie on day one, they play some basic Nirvana chords.