Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Sean7512

macrumors 6502a
Original poster
Jun 8, 2005
856
41
Well, let me start by saying that I am a sophomore in college studying Computer Science. I have studied Java, C++, x86 Assembly, and True Basic. The past few months, I have been putting ideas together in a notebook for my dream program. I really think that I have a program that would be wildly popular (As long as you're a hockey/NHL fan :p ). When I presented my idea to other people, they have all agreed that they would love it, as nothing like this exists. I have written out in a document exactly what the program should do, and I have even made some Photoshop mock-ups of it. The problem lies right there. It is just on paper and it is just a mock-up.

This program is fairly large and complicated, so me being a new programmer, I am almost overwhelmed when I begin to think about the endless classes/functions that would be needed. Then there are the thoughts that I don't even know how to implement what I want to in code. I absolutely plan on finishing this project some day. For now, a beginner, what is the next logical step? My program will obviously utilize a GUI, but I have no experience there. So far, everything has been command line programs. So, can I begin to code some aspects now and worry about the GUI later, or what? What should my next step be, because I am not sure.

Thanks for any help that you can give, it is GREATLY appreciated.

BTW: No, I am not gonna tell you my idea....Not just yet. Whenever it is done, I am going to have it as a free program...but I don't want to spill the beans just yet. I'd hate for my idea to get stolen, as I have said, nothing like this exists. So being the first with this would definately be something special.
 

mduser63

macrumors 68040
Nov 9, 2004
3,042
31
Salt Lake City, UT
Start small, and go through the normal "routine" of learning to program. I think if you just dive in and try to start developing your idea, you're either going to get frustrated really quickly or end up writing something that's not very good. One thing that is somewhat unfortunate, but basically necessary, is that you need to start by learning to write programs that don't have a GUI. If you're planning on doing Mac-only development, you should learn Objective-C. If you already know C++, it won't be too hard to pick up. I recommend Stephen Kochan's Programming in Objective-C. After you've mastered that, you can move on to learning Cocoa and start making GUI stuff. Aaron Hillegass's Cocoa Programming for Mac OS X is the most commonly recommended book for learning Cocoa (it's what I used). Even after going through those two books, you won't really know enough to write a complex program, but you'll have a good enough base to learn the rest of the stuff you need on your own from the documentation and the web.
 

balamw

Moderator emeritus
Aug 16, 2005
19,365
979
New England
'twould certainly help us help you if you could expand on what you mean by a GUI, 'cause you can do GUIs in Java, but they're not fast.

Are we talking real time fast paced action game GUI or more like web page input form GUI.

B
 

Sean7512

macrumors 6502a
Original poster
Jun 8, 2005
856
41
To clear things up...

I have wrote many, many C++ programs without a GUI. I would definitely say that I have a pretty good foundation in C++. I was planning on writing the code in C++, I am not too worried if my program ends up being Windows only.


As for the type of GUI I'm thinking of...

I would like the window of the program to be a solid color with a transparency effect. That is not necessary though, a solid colored window would work just as well. Inside the window will be all text based from either being hard-coded in or being collected from the web and being displayed. I also plan on incorporating some form of video inside the program. But, as for high end graphics, no the most demanding would be either playing a video from the hard drive or streaming from the internet.
 
To clear things up...

I was planning on writing the code in C++, I am not too worried if my program ends up being Windows only.
You're not gonna make good friends here if you start like that...
beside i can't see why a compilation of your code on Mac would be so hard.

Well for your implementation i can only give you some very general advices.
You can follow some Agile's principles on yourself
-decides of the general's things that should be implemented
-break them down in small part
-decide of a time period at the end of which you have a running program with the new functionalities implemented and tested (running and bug free is a nice extra)
-your time period also include the research and learning time
-force yourself on coding/learning on regular basis
-At some point you should look back at your code and see what you learned that could significantly be improved (refactoring)
-I guess you can left aside the test driven part for a personal project but having some king of test system wouldn't hurt to much.
-For you GUI you can see during one of your dev period (sprint), Java can interact with C/C++ and i have seen some people making great flash GUI for programs but i have no idea how they did that

bozigle
 

Sean7512

macrumors 6502a
Original poster
Jun 8, 2005
856
41
You're not gonna make good friends here if you start like that...
beside i can't see why a compilation of your code on Mac would be so hard.

I didn't mean to say it that way. I know that C++ can be portable, depending on the libraries that is used. I am aiming for it to be both Win and Mac. The thing is, I have never wrote any code on a Mac. All they teach us at school is using Visual Studio .Net. I have a pretty good book on XCode, so I am going to begin writing simple apps for the Mac OS using C++. What I meant is, if I cannot get it to work on the Mac for one reason or another, it isn't a huge deal. This is just a personal project, and I want to do it for the feeling that I designed my own program from the ground up alone.

My real goal with the program that I'm aiming for (in a later version), I want it to be a widget for OSX, because it wouldn't have to take up unnecessary screen space on your desktop. But for now, while I'm beginning, I'm going to keep the code on both systems and hope that all turns out well.

Thanks for the advice though guys, you really did help me. I gotta think smaller, not the whole project :D
 

bronxbomber92

macrumors regular
Nov 23, 2006
109
0
I didn't mean to say it that way. I know that C++ can be portable, depending on the libraries that is used. I am aiming for it to be both Win and Mac. The thing is, I have never wrote any code on a Mac. All they teach us at school is using Visual Studio .Net. I have a pretty good book on XCode, so I am going to begin writing simple apps for the Mac OS using C++. What I meant is, if I cannot get it to work on the Mac for one reason or another, it isn't a huge deal. This is just a personal project, and I want to do it for the feeling that I designed my own program from the ground up alone.

My real goal with the program that I'm aiming for (in a later version), I want it to be a widget for OSX, because it wouldn't have to take up unnecessary screen space on your desktop. But for now, while I'm beginning, I'm going to keep the code on both systems and hope that all turns out well.

Thanks for the advice though guys, you really did help me. I gotta think smaller, not the whole project :D
If it can become a widget, home complicated can it really be? How advance of programs have you made before (I know command line, can you elaborate a little?). And compared to what you hav made, how advance will this project be?
 

Sean7512

macrumors 6502a
Original poster
Jun 8, 2005
856
41
If it can become a widget, home complicated can it really be? How advance of programs have you made before (I know command line, can you elaborate a little?). And compared to what you hav made, how advance will this project be?

Well, keep in mind, I am only a sophomore. I am not sure if it can become a widget, but a stripped down version of it could become a widget. Kinda like how there are iChat widgets that show you your buddy list. I'm sure that not everything I am planning could be implemented into a widget. But the basic program, being stripped down can definitely become a widget.

My most advanced program that I have made before is probably a Tee Time Management program. I developed this for the golf course I work at, and it is in use as of November 1. It allows golfers to schedule a tee time up to a week in advance from the present day. Every day, the program gathers all the tee times for that day and stores them neatly into a text file, that is printed out. That way, the cashiers have a complete list of all the golfers. The program also has some features that are only available to the manager that will give him statistics, such as: % of available tee times being filled, the ability to black out certain times for outings and such, and shows a list of those who did not show up for their time. If a golfer misses their tee time without canceling it a day before, the program marks their name, and will no longer allow him to schedule until the manager re-allows him. On top of all of this, a golfer can reschedule his tee time or cancel it completely, one day before his originally scheduled time.

This project, I feel will definitely be more advanced, prob by 5 times or so.

Hope that helps...
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.