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

troop231

macrumors 603
Original poster
Jan 20, 2010
5,826
561
It has taken me a few months to come up with a new project idea, but I think I finally have one, basically the app would be a tab bar based iPhone application, with 3 tabs on the bottom, Email, Contacts, and Settings. The app at its heart will be based on connecting to a website to register for a username/password to start using the app. Contacts will be loaded over the air via sql database, but will reside locally if no connection is available. In the settings tab, I want the options to fetch or push, and a logout button. On the email tab, I want a Inbox folder, Sent folder, and Drafts folder for items that dont get sent due to a network error. If a user gets an email with a link in it, it will open up in a uiwebview within the app also.

If possible, I'd like to do all of this without Interface Builder and creating .xibs

Sorry about the long post, I'm just trying to get an idea on how long this would take, setting up the website with php and mysql shouldn't be too hard. But, do any of you have any realistic timeframes this could be completed in?

Thanks!
 
I think it really depends on how experienced you are.

I wouldn't guess it'd take more than a month if you're already pretty familiar with everything you'll need to do.

But the fact you're saying
If possible, I'd like to do all of this without Interface Builder and creating .xibs
suggests that you may not be very familiar with it all. Yes, it's definitely possible to do it all without IB and creating .xibs. Would I suggest using .xibs? Probably, I mean, it seems like using xibs would just save a few headaches with getting all the numbers right.
 
Not sure what you're asking. Are you asking how long it would take you to do it, or how long it would take someone else to do it?

If you want to know how long it will take you, then you're the only one who can answer that. If you don't know, and you have to ask here, then the answer is "Longer than you imagine". That's not a smartass answer. It really will take longer than you imagine. Software always takes longer than you think, until you have lots of experience estimating how long software takes. Even with experience, your estimates will often be wrong, just not as much wrong, say only 25% off instead of 300% off.

If you're asking how long it would take someone else to do it, then I think it depends on who is doing it.

On the project itself, are you doing this for educational value? Because it doesn't seem like something Apple would accept into the App Store. Every iPhone already has an Email app, a Settings app, and a Contacts app. Why would I need your multi-purpose app? What does it offer that I can't already get? And why on earth would I want to sign up with a new account and password? I can already do all that just by signing up for gmail, or yahoo mail, or any of countless other websites.

If the goal is to make the project, I'd probably just make it a web app, entirely in HTML5 and JavaScript, with client-side storage and offline capability.
http://developer.apple.com/library/...roduction.html#//apple_ref/doc/uid/TP40007256
 
Not sure what you're asking. Are you asking how long it would take you to do it, or how long it would take someone else to do it?

If you want to know how long it will take you, then you're the only one who can answer that. If you don't know, and you have to ask here, then the answer is "Longer than you imagine". That's not a smartass answer. It really will take longer than you imagine. Software always takes longer than you think, until you have lots of experience estimating how long software takes. Even with experience, your estimates will often be wrong, just not as much wrong, say only 25% off instead of 300% off.

If you're asking how long it would take someone else to do it, then I think it depends on who is doing it.

On the project itself, are you doing this for educational value? Because it doesn't seem like something Apple would accept into the App Store. Every iPhone already has an Email app, a Settings app, and a Contacts app. Why would I need your multi-purpose app? What does it offer that I can't already get? And why on earth would I want to sign up with a new account and password? I can already do all that just by signing up for gmail, or yahoo mail, or any of countless other websites.

If the goal is to make the project, I'd probably just make it a web app, entirely in HTML5 and JavaScript, with client-side storage and offline capability.
http://developer.apple.com/library/...roduction.html#//apple_ref/doc/uid/TP40007256

Sorry that I didn't specify whether I or someone else would code it, but I am probably going to freelance this one out. Also, its not really an email app, that's all I can say without spilling beans. On the first app launch you will be prompted to either log in or register for the particular service that is brand new. Email is just a code word I'm calling it because I can't give all the details that make it unique.
 
Those apps were extremely easy due to them only being navigation based.

I actually find Tab Bar based applications easier to make than Navigation based ones... the only issue is that the tab bar rarely seems like a good idea for the basis of an application (at least IMO).
 
I actually find Tab Bar based applications easier to make than Navigation based ones... the only issue is that the tab bar rarely seems like a good idea for the basis of an application (at least IMO).

I agree. Plus is this app something that needs to be pushed out in a hurry? Can you not spend some time learning what you need to know to create this app yourself? Are you so sure that your app will make enough money to at least make you back what you'll pay a programmer to write it?
 
basically the app would be a tab bar based iPhone application, with 3 tabs on the bottom, Email, Contacts, and Settings.

As a first step this kind of functionality can be very rapidly developed by modifying some existing sample/example code from the Apple Developer site.

The app at its heart will be based on connecting to a website to register for a username/password to start using the app.

Are you using HTTP POST, or HTTPS, or some other protocol? NSURLConnection is powerful, and worth studying. See: http://developer.apple.com/library/IOS/#documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/Reference/Reference.html.

Contacts will be loaded over the air via sql database, but will reside locally if no connection is available.

So you need some synchronization protocol. Can the cloud-based storage be modified outside of the App -- e.g. by administrator or by user using a Web App etc.? Getting synchronization right is nontrivial. Have you a design yet?

Do you intend to use SQL directly, or use Core Data? See: http://developer.apple.com/technologies/ios/data-management.html.

In the settings tab, I want the options to fetch or push, and a logout button.

Presumably a UITableView, pretty trivial.

On the email tab, I want a Inbox folder, Sent folder, and Drafts folder for items that dont get sent due to a network error. If a user gets an email with a link in it, it will open up in a uiwebview within the app also.

Arranging the navigation mechanics is pretty trivial -- again you will find plenty of examples of "drilling down" in UITableViews and so on. The real work here, of course, is the protocols for data storage and transfer.

If possible, I'd like to do all of this without Interface Builder and creating .xibs

Just out of interest, why? My App has a very complex layout that started in IB, but I later converted it to code; but IB would be a good fit for this App.

But, do any of you have any realistic timeframes this could be completed in?

The user interface that you describe is rather straightforward IMHO. A competent iOS programmer could develop the required views in a matter of days.

The model, however, is more complex because your data model and communications protocols are unclear. Things to bear in mind when estimating the required effort:
  • Network reachability
  • The truth -- in Cloud or in App?
  • Performance on EDGE
  • Synchronization algorithms
  • Security
  • Interrupted data transfers
  • Storage size limits?
  • Impact of iCloud backups?
  • Module testing
  • Beta testing

Good luck :)
 
As a first step this kind of functionality can be very rapidly developed by modifying some existing sample/example code from the Apple Developer site.



Are you using HTTP POST, or HTTPS, or some other protocol? NSURLConnection is powerful, and worth studying. See: http://developer.apple.com/library/IOS/#documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/Reference/Reference.html.


So you need some synchronization protocol. Can the cloud-based storage be modified outside of the App -- e.g. by administrator or by user using a Web App etc.? Getting synchronization right is nontrivial. Have you a design yet?

Do you intend to use SQL directly, or use Core Data? See: http://developer.apple.com/technologies/ios/data-management.html.



Presumably a UITableView, pretty trivial.



Arranging the navigation mechanics is pretty trivial -- again you will find plenty of examples of "drilling down" in UITableViews and so on. The real work here, of course, is the protocols for data storage and transfer.



Just out of interest, why? My App has a very complex layout that started in IB, but I later converted it to code; but IB would be a good fit for this App.



The user interface that you describe is rather straightforward IMHO. A competent iOS programmer could develop the required views in a matter of days.

The model, however, is more complex because your data model and communications protocols are unclear. Things to bear in mind when estimating the required effort:
  • Network reachability
  • The truth -- in Cloud or in App?
  • Performance on EDGE
  • Synchronization algorithms
  • Security
  • Interrupted data transfers
  • Storage size limits?
  • Impact of iCloud backups?
  • Module testing
  • Beta testing

Good luck :)


Thanks for all of your helpful info! At first I think I would want to use a VPS shared server with unlimited bandwidth and transfer until more revenue is generated when more users sign up. I'm not sure how many concurrent connections can be handled on a VPS though before it gets clogged and lags or DoS's.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.