I'm in the process of learning to become a better Flutter developer. I've taken a couple of intro courses on Udemy, and I've even built/released my first app.
While building my app, I realized I don't understand architecture.
My ultimate goal is to learn how to build apps as a professional developer would.
In the countless hours of research I've done, I've realized that professional developers:
Separate code into layers (ie. Presentation, Domain, Data)
Write their own tests
Likely a list of other things I don't know yet
understand.
While trying to learn these materials, I continually face the same problem. Every time I try to learn something new, I encounter something I don't understand.
For example, I might be trying to learn an architectural pattern, and out of the blue, I read terms like "dependency injection," "lazy singleton," or "repository." Because I have no idea what those things are, I get stuck.
I've tried to dig into the source code of professional apps, but it's way over my head. There's a massive gap between "I finished a couple of Udemy courses" and "I work as a senior engineer."
So, if you're an advanced developer, I have three questions.
If you had to teach a complete beginner to become a professional flutter developer, what material would you have them learn?
What reputable resources would you use to teach each topic?
In what order would you teach the material—to ensure the student could understand each new topic?
I know this is a broad question, so I'll narrow the scope. Ideally, I want to build apps like the team at Very Good Ventures does. For context, they use flutter_bloc, a Presentation, Domain, and Data type architecture (see picture), and write their own tests. And, as I mentioned above, likely a list of other things I don't yet understand :)
Architecture Pattern
Finally, I know I probably sound lazy. I certainly could read a million articles in an attempt to piece everything together. But, ideally, I was hoping to find a more effective path. So, that's why I'm asking the experts.
Thank you for your time,
Chris
I would suggest using GPT3 and codex. Give them all of the context you have, and ask your question. They have already read all of those articles plus looked at a lot of code. Because flutter is so new probably it is likely less represented in the data sets. However, I have been able to ask some forter questions and receive answers.
Flutter can be best thought by flutter's creators, no other resources can teach you better,
Just follow flutter official documentation,
All the examples are carefully designed with best coding practices and patterns,
https://docs.flutter.dev/
Related
I want to learn Lift. Unfortunately, all documentation which I tried either obsolete, unreadable, incorrect or combination of the above. I tried the following:
Simlply Lift. Some things from the book I tried lead to errors.
Exploring Lift. The structure of book is very bad. It's hard to read and try out code in the wild at the same time.
Lift in Action. The same as the previous but you need to pay for it.
P.S. I've seen similar questions. Most of them were asked a long time ago. Did the situation improve from the time of that writings?
P.P.S. Are there any other type safe scala web frameworks (Don't offer Play 2.0. It's not typesafe. I don't see any reason to create it in Scala).
It is unfortunately true that the state of Lift documentation is uneven at best and there are huge gaping holes.
However, the Lift community is just full of awesomely helpful people.
My recommendation is not to play around, but rather to try and implement something. If you get stuck, ask specific, direct questions about what you're trying to do, how you're doing it and why it isn't working.
So far, though I would wish for better documentation, I've been able to get every answer that I needed either through Google or on the Lift mailing list - though I expect I might ask more questions here in the future.
The Lift documentation is not its strong point. The philosophy is more "try and ask if you have any problem". Here are a few tips:
Assembla
One ressource that is really useful is http://www.assembla.com/wiki/show/liftweb, there are a lots of examples so you can progressively learn how it works.
Mailing List
Otherwise you can always use the mailing list if you have specific questions even if in my opinion it is really hard to explore it fast in order to solve a problem which was already encountered. http://groups.google.com/group/liftweb
Stack Overflow
Finally, a small community is present on Stackoverflow so feel free to ask in here. This is a good way of looking for answers and creating documentation in the same time.
Source code
Don't hesitate to explore the source code and the scaladoc if you have specific questions/doubts about the behavior of a function, they are often short and even sometimes commented! http://scala-tools.org/mvnsites/liftweb-2.4-M4/#package
Have a look at the Lift Cookbook: http://cookbook.liftweb.net/
"Simlply Lift. Some things from the book I tried lead to errors."
What exact type of errors did you have? Have you tried to follow it with "Simply Lift" examples that you can download from GitHub
https://github.com/dpp/simply_lift?
Only errors I had were related to my lack of experience with SBT, but that's another story.
I have started with Lift mostly from that source (Simply Lift + examples) and in combination with its great community and Google (ChrisJamesC has listed the main links really nice) it was quite okay for me.
I would suggest you to work out all examples given in the "Simply Lift" tutorial or at least work them out unless you feel comfortable enough to jump right "in media res" and try something by yourself. That was the best way of learning Lift for me.
Also, whenever you got stuck somewhere and can't find solution on the web, your questions would be welcome and answered on the Lift Google Group (https://groups.google.com/forum/?fromgroups=#!forum/liftweb). David Pollak is very often right there to answer your questions directly so I have only words of praise for this framework's community and Lift's
creator.
P.S. Lift's documentation could be better organized, some stuff could be better explained for sure, but IMHO it was just too small a price I had to pay to enjoy such beautiful framework. Learning curve is steeper than with Play, especially in the beginning, but after I "survived" the very first week it was almost impossible for me to give up of all of its advantages and original concepts (Lift's "Seven Things") and switch to another framework.
I need to develop a client application for a site that host and show images.
The client should shows all new images and take a picture and send to website.
I'm a newbie to iOS programming so this question:
In an application alike this, there's the need to create a Model? I ask this question because I think I can do anything with Controllers but maybe I'm wrong.
While there is never a "need" to create a model, it's good form to do so, and it'll likely save you many headaches down the road. Ultimately, you're going to need to deal with images and websites and how they interact with each other and whatnot, so you might as well do it in models from the outset.
I'm as guilty as anyone for wanting to see immediate results and hack together something quickly, but I always regret it later on, and have to spend more time than I'd expected refactoring it into something usable.
The MVC pattern as used in Mac OS and iOS applications isn't something best explained in an answer box but here's a link to some simple documentation about the roles of Models, Views and Controllers
Some good basic introductions to start with, which also have relevant links to the next stage of documentation are:
Cocoa Core Competencies
Cocoa Application Competencies for iOS
Read these excellent articles first. You'll learn better and faster if you do some basic reading.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I'm a developer who is making an app without a graphic designer for the first time. I am competent at making user interfaces that fits conventions and the Apple Human Interface Guidelines, but when it comes adding that extra layer of decoration to make the app sexy, I'm totally inexperienced.
Does anyone have any pointers or resources for helping developers such as myself act like graphic designers, in particular for iPhone apps?
I have a technical knowledge of photoshop, without having an artistic ability with it. I like to believe that I have a good eye for judging aesthetics, but I've never been good at creating something aesthetically pleasing from scratch.
"Acting as" requires being one, so learn the basics of graphic design. One popular book for beginners is The Non-Designer's Design Book. It's not about Photoshop, it's about recognizing why a design works to improve your judgement. There is more logic behind it than you may think. Usually being pleasing is the same as conveying useful information, "design is how it works as much as how it looks".
Review screenshots of existing iOS apps: Pttrns, Well Placed Pixels, Beautiful Pixels, or keep your own collection using LittleSnapper and CandyBar.
Unfortunately most tutorials are step by step instructions to reach a goal, but they don't bother much in why or how combining certain effects works. Then there are a lot of subtleties which you will have to dig in blog posts. Erik Tjernlund posted a good link (flyosity.com), here is another (bjango.com). These details create immediate trust from the user. There are plenty of tutorial sites on Google, but learning PS is a long-term goal.
An (offtopic) option now is to buy professional services. Example, Articles from Sophia Teutschler got help from the IconFactory. It's cost effective to invest your time in what you do best to pay for what they do best.
I really like Mike Rundle's (#flyosity) blog post – "Crafting Subtle & Realistic User Interfaces" – as a good, hands-on introduction on how to think about creating beautiful user interfaces. Follow some of his advice and your apps will automatically look much better.
To get inspiration, I highly recommend the Pttrns site. Look at how different apps solve common tasks.
My last advice is to practice a lot. My experience is that using the most commonly used tools (Photoshop and Illustrator) doesn't come naturally for us developers. Seeing a professional using these tools can sometimes be a real eye-opener. Especially workflow and how they use the tools to guide them in the creative process.
I am frequently visiting this website: http://app.itize.us/wp/
Not for directly copying others design or functionality but I always get ideas on how to design GUI elements here, often by mixing many of the different styles. I will also recommend you to just play with all of the different layer options you get when you double-click a layer in Photoshop, learned a lot by doing that!
The Web Designers Guide to iOS Apps is excellent but it does focus on NimbleKit. If you're not using NK the design discussions are still valuable.
You can follow tutorials here. I am not vary much familiar about photoshop/illustrator but may be these tutorials be helpful.
Having a "good eye" and knowing what looks nice is good, but if you don't have that initial "vision" then you will be spending a lot of time playing around until you stumble on the design that looks good and even then you may never reach that point.
As developers, we are very good at following the guidelines put down by Apple and making sure that we follow those - after all it's a nice logical set of rules to follow and that's exactly what we do when we write code - follow logical rules.
Unfortunately the design side of things doesn't have rules that we can follow. Yes, we may be technical at using Photoshop or some other drawing application, but when it comes to actually having that spark of inspiration, that's not something we can just click a button for.
Looking at other applications is one way to go. But then you may end up having an app that looks like another app or a collection of a number of apps and then you may have problems with a fluid user interaction.
My own approach to this problem was to go out and find someone who is really good at doing that art stuff and working with them. I struggled for a long time designing my own stuff, but looking back, it was obvious it was a developer (me) doing the design. I'm not sure what it is, but there's an extra something that these graphic artists seem to be able to do that I just can't get and that makes all the difference.
But the flip side to this is that he can't code. Sometimes it's best to just stick to what you're best at.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I'm wondering if it's realistically possible to learn the iPhone SDK and complete an app by the end of this summer. The app shouldn't be too difficult, it would just interact with my site's API and essentially just fetch, create, and edit resources. I already have a little experience with the SDK (and I'm comfortable with Objective-C), so I'm not completely new to it. Although here I things I don't know how to do and what I'd need to learn:
Log in to my site using basic http authentication and store the user's username/password for all future requests
Implement a toolbar at the bottom to navigate between different views
Fetch and parse xml into list items
Do POST/PUT requests to create/edit a resource on my server
Are there any good resources available to learn how to do those tasks above? Thanks!
You mentioned creating/editing resources on your server. If you're running Ruby on Rails on the backend, you might find Objective Resource interesting, an Objective-C interface into Active Resource:
http://iphoneonrails.com/
But back to your original question, it all depends on how polished you want the app to be. My advice is, ignore if you can do it and just get started learning. Start with the (free) Stanford iTunes U course podcast.
I learned and published in 3 months. The question is are you comfortable with Objective C (which you are) and are you familiar with cocoa and the MVC pattern?
Basically, unless you are totally new to programming, go for it!
I wrote an Android game in two weeks with out knowing Java or the Android API or that much about game programming.. But I had to copy and paste a lot of stuff from documentation examples and other available source code. It is theoretically possible to learn enough to write an iphone app in that time and build it. But it is up to you to focus and see it through, that is the hard part.
Yes - I've even done it.
I had an internship for 2 months last summer and I managed to learn objective-c and create and polish a fairly complex app within that time.
The way I did it was just to throw myself into it. I knew what needed to be done so I jumped into it. I had a quick look at some open source code for various things to see how other people did it then apply those rules to my own code.
2 important things to remember:
Google and stackoverflow are your friend, if your having trouble with something google and stackoverflow will normally have an answer.
Option, Command and double click on something in your code will open up the apple developer documents and do a search for the thing you double clicked on. This gives a really easy way to check for methods and properties in Cocoa classes.
Yes you can.
My suggestion, learn the basics first. Grab a book - I recommend "Beginning iPhone 3 Development" by Jeff LaMarche & David Mark - read most of the chapters (a few of the later ones you can probably leave for another time if you don't need them yet, but do all the earlier ones) and get your head around the essentials. Do the exercises and code as much as possible. There are plenty of learning resources around the internet too.
Then tackle your app while continuing learning. By this point you'll have fallen across & bookmarked a few relevant web links or grabbed a book or two specific to your app's needs, and it should all fall into place.
Good luck! :-)
Yes!
Other than the advice people gave, you can also check out the iPhone Application Programming course on Open Courseware. But, I warn you, it's a 45h course.
Maybe you can spend a week or so to study the Wordpress source ...
I'm doing pretty much the same thing on OSX development. This is how I tackle it:
Buy relevant books. Amazon and SO provide with the right choices, then buy alot of them and see which one fits. I found that having a good book or two and occasionally reading them outside of your programming environment can really enforce you learning proces.
Work through at least one book, the others are for elaborating on what you have learned.
Start writing you app. This can even be after only a mere week of learning the SDK. Start with globally planning the thing, and dividing it in concrete to-do's. Consider every to-do a challenge and tackle accordingly. You will very quickly learn this way.
After a while your knowledge has expanded enough to reflect. When you just started writing the app, you inevitably made some mistakes. Now is the time to fix them and let your experience work its way.
And as previously mentioned, go nuts with google and SO. Of course, posting here proves your ability to use these tools properly. Above all, have fun.
It's possible.
Don't bother investing too many resources into books, especially if you want to save money. Stanford University have put up an excellent series of lectures for free from their iphone course that will get you up to speed with iPhone development, with a few assignments to do on the side (this is good because it offers some structure to your learning)
You can find this on iTunes (it might be reasonable to skip the 'introduction to objective-c' lectures if you're already familiar with the language)
Also it might be worth pointing out that if you want to develop an app on an iPx device you need to get a Developer License which will cost you a bit of money for membership. Although working off the simulator is completely free but doesn't replace trying your app out on a physical device.
ANother suggestions is to look for opesource projects and try to use them as your training exercise. Example:
http://sourceforge.net/projects/mtgr8-a3/
http://sourceforge.net/projects/mtgr8-jigsaw/
You can get a lot of help from iTunes U. Here is a very recent class which is packed full of useful information.
https://podcasts.apple.com/us/podcast/advanced-iphone-development-spring-2010/id407243032
There is also a class from Stanford University but I find it moves along slower, but it does cover a lot of material.
https://podcasts.apple.com/us/podcast/iphone-application-development-winter-2010/id384233225
If you search for "iPhone Application Development" on iTunes you will find other classes as well. I find that these classes, along with all of the available documentation and sample code from Apple, is a great way to learn Objective-C, Xcode and iPhone development.
3 months - full time - sure. Then the next year or so can be spent realising all the little things you did wrong and getting better. But don't let that hold you back, you can certainly do something functional in that time and it's the best way to learn.
I would not start with a book but use iTunes University. The first course available from Stanford was called CS193P Web Page (iTunes link) and it's a great place to start - seeing things done on video is easier for me than reading. More recent classes are also available though they do not publish every semester's class.
What resources can you recommend for learning how to architect a iPhone application?
Background of the question is that most of the resources explain the usage of a single class or concept (and i appreciate that a lot to learn something about the specific topic) but as far as i can see they lack unfortunately to describe how to put things together for typical real world applications.
This won't give you a ton of help with architecting large applications, but I found this site to be really useful for finding good examples for working with animations and all the ViewController stuff: http://appsamuck.com/
You should focus your search on best practices, as a lot of the details that go behind proper architecture are found in getting those general fundamentals right.
Otherwise, if you want to know how "typical real world applications" are designed, you should go and find some open source projects and download them. There will undoubtedly be a variation in quality but it should give you a general idea of how apps get built.
Overall I don't think you'll see a general tutorial on how to build an iPhone app because all applications are different. They solve different problems under different requirements for different kinds of users. You'll probably find that the answer to your question can only be found by trying to build something on your own.