Short on code or examples today, but this topic is just as (if not more) important than any code I could come up with. It’s extremely easy in Rails to create a basic CRUD app that fulfils business needs or scratches a developer’s itch. But I think that many people get so focused on the “I have an idea let’s build it NOW” mentality, that the user’s experience gets left in the dust. Sure, the code behind your app is incredibly important. But the design of your application is the most important thing; not just the look and feel of the app, but how it works.
Have a roadmap
Before ever getting started with building an app, it’s important to have a roadmap, and design will help drive that. A storyboard of the critical path of your app will influence forms, URLs and relationships between your data. With a well-defined roadmap, the development of your app becomes almost trivial, as the design will mostly out any pain points you might come across. In my rush to learn Rails, I’ve been guilty of this more than a couple of times. It can fly when you’re building out a simple URL shortener, or a signup / payment form for a physical event, but as the app grows in complexity, not having a roadmap will break you.
Plan your URLs
This is a subheader in the whole design roadmap, but I think it’s very helpful to think about in the beginning. Because your app probably doesn’t need all of the resources available in a controller; maybe you just need an overall view, or maybe you just need a way to create and edit.
Study existing codebases
This is probably helping me the most right now. As I said before, I recently subscribed to Upcase. One benefit of that program is they share the code that powers the Upcase app. I’ve gotten great ideas and plans from studying their strategy. Studying a mature app (Discourse, for instance) can be a great way to gain insight into how your app needs to work while in the planning stages.