Resources for Learning Objective-J and Cappuccino? - cappuccino

I have noticed, for some odd reason there is absolutely no books out on the Cappuccino Web Framework, and Objective-J.
I would really like to learn these, but I cant find any resources other than the poorly set up (confluence-like) wiki/reference on the webpage.
Is there any other resources on Objective-J and Cappuccino? Preferably PDF?

I had exactly the same problems a while ago.
There is very few comprehensive tutorials on Cappuccino. Only some articles are available.
I would recommend to learn Cocoa first (especially AppKit and Foundations). Since Cappuccino is a port of Cocoa, you will find that your transition to Cappuccino and Objective-J would be smooth and easy.
Also some very good tutorials are mentioned here. Especially, I like this one:
http://www.nice-panorama.com/Programmation/cappuccino/

Related

EmberJS architecture overview

I'm looking for an explanatory video / writeup that would present the different components / patterns of an EmberJS application. I'm familiar with a couple of MVC architectures however this design pattern is very flexible. For example different frameworks seem to understand controllers differently. There also seem to be things that are specific to Ember such as a router and routes.
These slides http://www.lukemelia.com/devblog/archives/2012/08/23/architecting-ember-js-apps/ seem to be more or less what I want. Unfortunately, I was unable to find a working video to go together with them.
The materials posted on EmberJS site seem to follow a tutorial format. This is not at all what I want. Instead of learning how to build things instantly, I want to understand the general architecture first so that I know what kind of code should go where.
I gave an "Introduction to Ember.js" talk somewhat more recently that might be more helpful: http://www.lukemelia.com/blog/archives/2013/03/29/introduction-to-ember-js/ The page has embeds for slides as well as video.
I heartily endorse your approach to learning Ember, too. Understanding how responsibilities are divided in Ember and how those layers relate is a big part of creating elegant, maintainable apps.
The tag wiki lists some great video resources at the bottom.
You might send Luke a message to see if he has a copy of that presentation, he's still very active in the community.
https://stackoverflow.com/tags/ember.js/info

Looking for great examples of MVC frameworks

I've recently heavily gotten into Javascript programming. Currently I'm building a 'Fat client' powered by a PHP-based REST webservice.
This is going pretty well, but I want to learn more.. become an expert if you will.
My background is mostly MVC in PHP, so building true real-time GUI applications based on the MVC model is pretty new. MVC exists in PHP, but it's quite different. In javascript, because it's 'live' there's a much stronger emphasis for message-passing and events.
I'm learning based on the YUI3 and Backbone.js frameworks. I believe this is a solid foundation. I do feel though that, in order to become better I should try to learn from other (non-javascript) MVC systems.
I have some (very distant) memories of playing around with both Visual Basic and Delphi (6 and 7). Even though I'm sure these have solid frameworks behind them, there must be other frameworks out there that are great to learn from. I'd love to see a solid, non-javascript, lightweight framework or language I can learn from and borrow concepts from.
So my real question is: in the great history of GUI programming, what are some good examples of articles, books, or codebases I can read to strengthen my understanding of MVC, what has worked in the past and what has not, and how to create an elegant but powerful design.
Chapter 11 of Beautiful Architecture is about the MVC architecture in Emacs. Even if Emacs is not your cup of tea, it's still an interesting case study. An application that has been in active use and development for 24 years must be doing something right.
It cost a bit of money but the DoFactory stuff is great, I used it. Show how to implement enterprise level applications with MVC and a few other frameworks.
http://www.dofactory.com/products/products.aspx

What's the best resource to learn how to write apps for Mac OS X?

I'd like to learn how to write application for Mac OS X.
Like how to use XCode properly, Cocoa syntaxes and examples, etc.
I'm already a web developer using ruby, php, mysql, rails, etc.
I looked through google quite some times but never found something palpable to learn from.
But I really want to make my own application, for fun and maybe business later.
Thanks a whole bunch for your tips!
Aaron Hillegass's book "Cocoa Programming for Mac OS X" is certainly up there. It would also be well worth your time to learn the C language well.
To jump right in as quickly as possible, I'd recommend going through the following Cocoa Dev Central tutorials:
http://cocoadevcentral.com/articles/000081.php (C)
http://cocoadevcentral.com/d/learn_objectivec/ (Obj-C)
http://cocoadevcentral.com/d/learn_cocoa/ (Cocoa part 1)
http://cocoadevcentral.com/d/learn_cocoa_two/ (Cocoa part 2)
http://cocoadevcentral.com/articles/000082.php (Style part 1)
http://cocoadevcentral.com/articles/000083.php (Style part 2)
Once you've read those, you should be able to do quite a bit on your own, just using the documentation in Xcode (option-double-click on a class name in Xcode) and Apple's developer site.
You should start by learning Objective-C. Programming in Objective-C is an excellencent introduction to the language
If you're looking for a free resource this is an excellent web-site
Only after you have a solid understanding of the language would I worry about the different frameworks available.
The first thing I would start with is Automator. In fact, it's what I did start with. Solve a couple of easy problems with it, like renaming iTunes songs or photo manipulation. In the process, you'll probably think of an action you want that's not included. You can write it yourself using AppleScript.
Now you've got the basics of two desktop programming systems for MacOS in about a day. It might seem silly to learn these two super-basic systems, but in the process you'll learn the flow of desktop development and get a couple of "quick wins" in before you move on to XCode. You'll begin to think of your Mac as more than just a web client.
If I were you, I'd check out RubyCocoa next. It's a language you're already familiar with, so you'll be able to score another couple of wins here, too.
When you're ready to take on Objective-C, Cocoa Is My Girlfriend is a great introductory resource.
I would start with the currency converter sample Apple provides.
This gives a nice introduction to Xcode and Interface Builder.
You could then try to implement the same basic application but with bindings.
As you seem to have experience in some interpreted languages, you may have troubles with the memory management in Objective-C at the beginning.
You can turn on Garbage Collection to make your life easier.
If you want to use your knowledge to create iPhone apps, you should learn the memory management concepts as there is no garbage collector available on the phone.
The podcasts on the Mac Developer Network also contain some good information.
I was in the same situation some time ago, struggling to learn mac dev, read a lot of books, and it was hard for me to retain all that information, but I stumbled across CocoaCast where you can find lots of video tutorials on Mac Development! And it's totally free to watch them, even to download them.
Stanford recently put out a course on iTunes U that teaches you how to program on the iPhone. Because the iPhone uses the same programming language as OSX, a lot of what they talk about can be transferred to Mac app development. Best of all, the course is free to download and watch, and has a bunch of sample material that goes along with it. Click the link below to open it in iTunes.
iPhone Application Programming
Check out Apple's Developer Documentation, which seems to be getting more and more attention over time, and has become quite good for beginners to start with.

Learning Cappuccino

What is the best source to learn Cappuccino? I do "traditional" web development, but i'm very interested in this new framework. Please note that I have no knowledge of Objective-C.
As mentioned above, the website is a good place, but there are also some other good resources:
http://cappuccinocasts.com/ (screencasts)
http://www.nice-panorama.com/Programmation/cappuccino/
http://www.littletreesoftware.com/blog/
http://theocacao.com/document.page/593
There are a few others too, and many of them are linked to from the site.
I wrote a real life cappuccino tutorial based on an actual customer project: http://www.springenwerk.com/2009/09/real-life-cappuccino-tutorial-part-1.html
On the tutorials is says:
A great introduction to Objective-J. Familiarity with JavaScript is recommended, prior knowledge of Objective-C not required.
http://cappuccino.org/learn/tutorials/
It seems the website is a good place to learn. Interesting framework.
You also have http://www.cappuccino-project.org/learn/
It is our new work-in-progress website. Not complete at all, it still has some very basic tutorials to help you starting coding with Cappuccino
I recently took up learning cappuccino. I found the Cappuccino Casts and the tutorials on cappuccino.org, however, like you, I come from a web development background - not cocoa / desktop apps.
Following some online tutorials was good to a degree, but I felt I lacked fundamental knowledge about the Objective-C and Cocoa and Cappuccino is modelled so closely to it. I bough a copy of Aaron Hillegass' book called "Cocoa(R) Programming for Mac(R) OS X" here: http://www.amazon.com/Cocoa-Programming-Mac-OS-3rd/dp/0321503619/ref=pd_sim_b_3 which I felt really helped with my base understand of application development rather than traditional web development.
I would definitely recommend giving it a read, I worked my way through it in a few days and thought it gave enough knowledge to understand what all the Cappuccino stuf was about.
I recently found that when I install Cappuccino from source, there is a fairly significant amount of code to learn from hidden away in <install-dir>/Cappucino/Tests/Manual
There is a wealth of code there that isn't advertised anywhere but is certainly good enough to learn from. Just drop the Frameworks next to the index.html file in each test folder and open up and learn!

Where is a good place to start programming GUIs for windows? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
I have experience writing console and network client/server applications in C and C++, but I know next to nothing about using the win32 visual API, MFC, Qt, wxWidgets, etc. Where is a good place to start, and what method should I specialize in, so as to be future ready and robust?
This is a rather broad question, as programming GUI applications in Windows can be done in so many ways.
There are two main parts to developing any GUI app: the language and the API/framework. Considering you're interested in learning to build Windows GUI apps, the language isn't really a point of focus for you. Hence, you should pick a language you already know and work with a framework or API that can be harnessed by your chosen language.
If you want to use C you're pretty much restricted to dealing with the Win32 API yourself, in which case reading Petzold or Richter would be great places to start. The Win32 API can be quite daunting, but it's well worth the effort to learn (imho). There are plenty of tutorials on Win32 on the web, and there's always MSDN, with a complete reference/guide to the Win32 API. Make sure you cover not just the API, but other areas such as resources/dialogs as they are building blocks for your Win32 application.
If you want to use C++ you have all of the options that you have when using C plus a few others. I'd recommend going with the Win32 API directly, and then moving on to a known framework such as MFC, Qt, wxWindows or GTK so that you can spend less time working with boilerplate code and instead focus on writing your application logic. The last 3 options I just listed have the added benefit of being cross-platform, so you don't have to worry too much about platform-specific issues. Given that you said you want to work with Windows, I'll assume you're keen to focus on that rather than cross-platform -- so go with MFC, but spend some time with the Win32 API first to get familiar with some of the concepts.
When dealing with MFC and the Win32 API, it's a good idea to try and get a solid understanding of the terminology prior to writing code. For example, you need to understand what the message pump is, and how it works. You need to know about concepts such as "owner-drawn controls", and subclassing. When you understand these things (and more), you'll find it easier to work with MFC because it uses similar terminology in its class interfaces (eg. you need to know what "translate messages" means before you can understand how and when to use PreTranslateMessage).
You could also use Managed C++ to write .NET GUI applications, but I've read in a few places that Managed C++ wasn't really intended to be used in this manner. Instead it should be used as a gateway between native/unmanaged code and managed code. If you're using .NET it's best to use a .NET language such as VB.NET or C# to build your GUIs.
So if you are going to use .NET, you currently have the choice of the WinForms library, or WPF. I personally feel that you'd be wasting time learning to build WinForms applications given that WPF is designed to replace it. Over time WPF will become more prevelant and Winforms will most likely die off. WPF has a much richer API set, and doesn't suffer from many of the limitations that Winforms does. If you do choose this route, however, you'll no doubt have to learn XAML, which is a markup language that drives WPF applications. This technology is coming of age, and there are many great places to learn about it. First, there are sites such as LearnWPF, and DrWPF which have some really great articles. Secondly, there are plenty of quality books on the topic.
So, to sum up, once you've picked your language and tech, the path is actually quite easy. Just pick up a book or two, read some blogs, get into some code samples.. and most importantly ... write code. Keep writing, keep making mistakes, and keep learning from them.
As a final note...
In other words, Silverlight. If you don't want to go the MS route you might give Adobe's Flash/Flex a look see. Both Silverlight and Flash/Flex build RIA's. Which I think is where we are headed. They days of Office like apps are numbered
I don't agree at all. Silverlight is not the same as WPF. Silverlight is web-specific, and only has a subset of WPF's features. Given that the question asks for Windows GUI apps, Flash/Flex Rich Internet Apps are not really a fitting suggestion. I also don't agree that the days of Rich Client Applications (such as office) are numbered at all.
I hope that helps. Good luck :)
I don't know if I'd call it a good place to start, but if you want to be future ready, take a look at the windows presentation foundation which is built entirely for the purpose of programming GUI's for windows
My first experience writing simple GUI applications for Windows was with C# and Visual Studio. The GUI-building interface is a simple drag and drop deal that generates skeleton methods based on potential user actions. I only did fairly basic programming with this, but I imagine it would be an excellent place to start to learn the basics and extend into the more advanced capabilities as you go.
There are plenty of online Win32 tutorials:
http://www.zeusedit.com/forum/viewtopic.php?t=1218
There are plenty of compilers to choose from:
http://www.zeusedit.com/forum/viewtopic.php?t=238
I would also recommend getting the Borland Win32 SDK documentation in WinHelp file format:
http://www.zeusedit.com/forum/viewtopic.php?t=7
It only covers the bare basics of the Win32, but when starting, this can be helpful as it is less daunting and less bloated than the MSDN.
I'd never go down the Silverlight, Flash/Flex or any similar route. It does look nice, but the main problem is that the code of the engine that runs it is completely closed-box and controlled by a single company. Take, for example 64bit versions of both of those. If some new platform emerges, you won't be able to migrate your existing code to it.
For business apps, Windows Forms is very mature. It provides a gentle path from auto-generating a lot for you into allowing fine-grained control and rolling your own. There are tons of high-quality third party controls and a large body of examples, docs, etc out there. It's hard to run into a problem that someone else hasn't solved. I highly recommend acquiring some background Win32 knowledge (e.g. Petzold) as the WinForms framework lives on top of it.
I have no WPF experience, but from the sample apps I've seen it looks like a good choice for apps whose interfaces would benefit from more graphical metaphors. So if you're doing a banking app, probably not worth the extra design overhead. But if you're doing, say, a warehouse management app it could be improved by dropping pretty boxes into pretty bins.
#StephenCox: wrong answer to the wrong question. OP is asking about desktop client apps, and moreover, WPF != Silverlight.
For a simple starting point to get your head around the "event-driven" nature basically all frameworks are created around look at FLTK.
Here are some quick starting videos Link
For professional use I'd recommend Qt, expensive but often worth it in commercial situations.
Since you are already familiar with C and C++ I would recommend learning how to write a simple Windows GUI app using Charles Petzold's book. It will give you the fundamental understanding of how Windows works. It's good to understand that most everything that you see is a window (a button is a window for example) and that these windows respond to messages. I wouldnt' spend a lot of time on this though and you don't necessarily need to do this first if you are going to chose WPF. I just think it's good to have a basic understanding of this.
There was a good podcast recently on .Net Rocks called "Kate Gregory Develops in C++ for Vista!" on there she recommends that someone starting out now should not use/learn MFC (even though it has been recently updated).
As far as getting ready for the future you need to learn WPF, but it isn't complete yet, so depending on the kinds of client side apps you want to create, you will probably need to learn WinForms. The majority of people aren't using WPF yet, so it's a good time to start learning. I think you will find it easier using C# to learn it instead of doing managed code with C++.
Get your basics right first. Best tutorial I've found is: http://winprog.org/tutorial/start.html
After that, although the homepage is hatefully distasteful, the tutorial pages are good in content and aesthetics: http://www.tenouk.com/cplusmfcdotnet.html
Then of course there's MSDN.

Resources