Add map with list to Form for mobile app? - ios

This is a very basic question, but I have no idea how to be begin, so please bear with me.
I'm a C# software developer, so I'm very familiar with the VS IDE and with Windows and Web development. But I have never developed a mobile application.
With that said, I came up with an idea which is essentially a screen with a map and a bunch of pins, and a list that represents each pin. It will run in an iphone and android phone. It will look something like below.
I decided to develop it in Xamarin because 1) I've worked with VS for many years so I understand how it works, 2) I can develop one app in Xamarin that can run both in ios and android.
I understand that it may be a very basic question, but I have no idea where to start. I also have experience with development, so I don't want to go thru the Hello World example. Finally, I also have a full-time job, so my limited free time would be used to completing this particular app.
So my question is: where do I start?

First thing first. You should get yourself familiar with Mobile Development(app life cycle, patterns etc.) by creating few sample applications (since you stated you were developing in Visual Studio using c# before it should be quick procedure for you). You can find documentation and sample codes on official Xamarin site:
Xamarin Website
Next get yourself familiar with MVVM pattern and MVVM frameworks to write applications using modern patterns and modern practises. I personally recommend MVVMCross or MVVMFresh.
Data Binding from Official site
FreshMVVM with Samples
Then get yourself familiar with Xamarin.Forms maps. It's a nice library that allows you to use one code and share them across 2 platforms. Google Maps official apis are also good but they are platform specific.
Xamarin Forms Maps
Enjoy and welcome to the Dark Side ;)

Related

How to develop for multiple platforms

I have made my first app in the Android platform. However this is not the only platform and I want to get my apps published on at least Android and iOS platforms.
I would like to have one developing platform for both platforms. What is the options?
I have now tried Flex, Air with Flash Builder. It seems quite promising but the future seems to be a bit uncertain and are also more expansive.
It would be interesting to have some suggestions about what developing tools to focus on if I would like to develop apps on both Android and iOS.
It depends what kind of apps you want to build (i.e. Games, Content Aggregators, etc.) because each 3rd party "App-Generator" that deploys to multiple platforms has their strengths and weaknesses.
Here's a (brief) list:
Appcelerator's Titanium SDK - leverages mobile-browser-based features, mostly for content-aggregators, simple or core feature list on platforms
Corona - leverages LUA-scripting language for 2d / more simple games and applications; has a growing user-base and community; possible to leverage for core-experience as well
Unity - 3d experience, games, usually for more high-end, premium experiences
If you're going to develop on the platform, I always recommend build to that platform's language since you'll never have to worry about what happens when the language is upgraded and your "app-generator" hasn't upgraded yet.
It will also help you to learn the language on that platform (Java, C#, Objective-C, etc.)
I know it's old topic but for those who are still looking for rapid mobile development there is also Kinetise that is code-less tool and offers also backend system/CMS.
You can use Sybase Unwired Platform. It has Device App Designer which can create applications for Blackberry ,Android and iOS.
If you are aiming for high quality, I don't think there is any other way than going native for each platform. Also keep in mind that different platforms have different UI guidelines and principles, and doing a multiplatform project is not a good enough reason to abandon those guidelines.
I recommend phonegap: http://www.phonegap.com

Is Marmalade SDK more relevant or commonly used for Game Development?

I am absolutely new to Mobile App Development and was looking for an appropriate platform to start off with. I came across a project where people are looking to implement self-help advertising for a switch and home automation company into a mobile app. They want an iPhone App initially but also want to deploy on Android and other platforms subsequently. A similar app is this one.
After investing a fair amount of time in researching about various SDKs and Developer Programs, Marmalade caught my attention with it's multi-platform deployment feature. However after going through a few tutorials, of which I found these quite helpful, I observed that more often than not the tutorials concern Game Development. So, I was wondering if Marmalade is a more appropriate platform for Game Development and if I am looking to develop a general application I should perhaps consider a native SDK?
Marmalade is great for games: among the games that use Marmalade are Cut the Rope, Plants vs Zombies, Call of Duty: Black Ops, etc
But for general apps you should better use some other tool at least till their Marmalade 6.0. They have native UI support but it's still in development and you may miss some features.
Look at Titanium: http://www.appcelerator.com/showcase/applications-showcase/
I always prefer to use native language for the app development due to easily available help and tutorial for them. You can find lot's of help and tutorial, guidelines, books etc. for Android or Objective C development, but their are very few tutorials on Marmalade.
Marmalade is a great engine for any game developer, but for a non-gaming app, I'd not recommend it, since you'll never need to use the extra features which are it's USP.

iOS sample projects to learn from

I am just starting iOS development. I read some tutorials, watched stuff on iTunes U and wrote some sample code myself. Now I want to take the next step. I want to learn about best practices for iOS development in XCode.
Are there any well written and well organized iOS projects that one could take a look at?
(As I see it, iOS is not exactly the place for open source enthusiasts, however.)
Thanks
Mike.
I agree with several of the other answers that state that looking at many, many projects for mini-examples of what you want to do in your own app is the way to go.
However, you asked for an example of an app demonstrating best practices.
You could do worse than to read Matt Gallagher's blog, Cocoa with Love from beginning to end. However, the app example you asked for is right here.
Not only will it show a variety of techniques, some novel design and best-practices, but also he points out where he feels that he might have done something better.
It's a great read.
I would suggest the following process: (it worked for me)
Think of an advanced app. that you eventually want to be proficient enough to create.
Make a top-down problem-solving tree containing the necessary skills required to build your final app.
Use this tree to divide your final app. into 'sub apps'. Start at the bottom of the tree, find a tutorial specifically for that skill, and make a "Hello World" app. that uses that skill.
Keep progressing upwards, creating 'sub apps' as you go.
When you are finally ready to make your final app. (it will take a while), you will have a good handle on how iOS development works. It will also be a great test of your knowledge via direct application!
Getting the hang of iOS development can be tricky; it really does require a top-down approach, and every online resource I've found takes a linear one. The only way that I think a linear approach to learning iOS development would be manageable, is to take it one small task at a time.
As for specific resources, I always google "[what I want to do] iPhone SDK" and browse the tutorials and forum posts that come up.
Here are some open source iOS apps. However, they aren't very well documented and are also very advanced.
TKAWebView - A subclass of UIWebView that handles authentication and downloading.
Welcome to your Mac - An iOS app. to VNC into a PC/Mac and do some cool stuff.
InAppSettingsKit - A settings screen creator for your apps.
Good luck!
The people behind the Parse platform have made two complete projects.
For each project there is the complete source code, a tutorial and the resulting app is also available from the AppStore.
Anywall: https://parse.com/anywall
Anypic: https://parse.com/anypic
They both rely heavily on the Parse platform as the data source, but you still get a feel for an iOS project.
Molecules is a great open-source app that uses 3D OpenGL to render complex models of molecules.
Just keep coding my friend. You'll learn over a period of time. The best way to get dirty in a mud fight is to jump into it... Weird analogy but you get the point.
Maybe someday, we all will learn from you then !
Like you said there many and many source codes are available internet, but most are incomplete.
I found some Open source codes of REAL application currently available through Apple app store are given here
Free iPhone App Source Codes of real apps
and also, you can find many answers here on stackoverflow question - Are there any Open-source iPhone applications around?
You can download free IOS sample projects from http://devcodemarket.com
I realize this is an old thread but I've also been looking for good objective-c code examples recently and I just realized that TextEdit's source code is available at the Mac Developer Library webpage.
Also, here are some popular objective-c libraries that have caught my attention:
CocoaPods
AFNetworking.
you can also go through UICatalog from Developers Library and download the sample code. just google it and you will find a project containing all basics of iphone.
I don't think there is any perfect project that can demonstrate all the qualities of great code. Developers have stylistic preferences and may make mistakes. That said, you should look at a lot of different projects and try to look at the conventions used.
I'd suggest starting on GitHub. Besides for seeing code, you'll see what libraries are out there, which may help further your projects later on. Here's the Objective-C page on GitHub.
(Also, I (GitHub link) think you're wrong about iOS devs not being in favor open source. Yes, there's money to be made, but you can't sell a CSV paring library on the App Store as is.)
Have a look at https://github.com/mozilla/firefox-ios
That is Firefox for iOS, written in Swift.
Cocoacontrols has a wide range of controls written using Objective-C & Swift.
I believe these days, this is one of the most famous website for iOS Developers.
But, before you jump onto this, you have to learn Objective-C & Swift very well, so that you will understand how to use the controls in your app which makes your app smooth.

Sencha Touch or jQuery Mobile? [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 8 years ago.
Improve this question
I wonder if I were to develop a mobile Web app (now, in two weeks, or in a month), which one should I go for? Which one would you mobile Web developers go for?
If jQM 1.0 were officially released today, I would most likely embrace it (as long as it actually delivers what it promises). Now that it is in alpha, I wonder whether it is worth to jump into it yet for a commercial grade project? Would Sencha Touch be a better alternative?
Sencha Touch is an application framework (you create your interface programmatically through Javascript) while jQuery Mobile is more of a mobile enhancement library (you write regular HTML for your content, then add jQuery mobile for transitions/animations). jQuery Mobile has an easier learning curve, but Sencha Touch can better simulate "native" apps.
The first question you need to ask yourself is what is the purpose of the application. If you want to release an application for sales on one of the retail outlets (iTunes, Andoid App store), or you need access to device specific functions that are not accessible via local APIs yet (accelerometer, camera, contacts, etc) then you should be thinking Native or one of the hybrid solutions (Appcelerator, PhoneGap, etc.).
If your audience is going to be more in the "mobile web" space, such as a mobile version of a corporate web desktop site, or intranet web application port, then you should be looking at Sencha Touch and jQuery Mobile. The decision between those two is really going to be based on you development experience and and what you feel more comfortable with. Sencha Touch is a VERY robust platform that has a Desktop (ExtJS) and mobile (Sencha Touch) that mirror each other so knowing one pretty much allows you to get up and running with the other. Also, Sencha has moved to an MVC model on the client which really helps to organize client side code and make it much more congruent with server-side development platforms.
The post above is actually incorrect, using the MVC pattern on the client combined with the historyUrl on your dispatch commands gives you the ability to use the browser back and forward buttons of the browser, so that is not exclusive to jQuery Mobile. Also, the Sencha Team's suite of products includes a Designer application that provides Designer which is a WYSIWYG editor that allows for the drag and drog creation of UIs. This company's roadmap has them in the process of updating the Designer app to allow for the drag and drop design of Touch mobile screens and application that will function with the MVC pattern. They are also getting ready to release a new version of the Sencha Command tool that will automatically generate entire MVC application structures for you in a matter of minutes, which you can then add the necessary custom code to round out your application. Lastly, the new SASS theming capabilities allow designers to use CSS3 and SASS config files along with variables and Mixins to generate cross-browser CSS style sheets for your application.
So, the decision of which way to go for the mobile web development question comes down to how comfortable you are with object oriented javascript. If you are very comfortable with it, then Sencha Touch is the way to go as it very extensible class system built into the core engine that can be customized to your hearts content...but if you have minimal experience with JS and you want the server to deliver your UI and don't mind seeing the Address bar drop down to move between pages (less web 2.0 looking), then jQueryMobile is the way to go.
It's pretty obvious that I am biased to Sencha Touch due to its well thought out class structure, extensibility, very active user community, web/mobile continuity, and constant improvement to the core framework and new tools that simplify development efforts. And not to mention that the Touch platform is more mature as jQM has not reached production mode yet.
I've been using jQuery mobile for a while now. It works well under Blackberry 6, iPhone, and Android.
I wrote an article about it here: jQuery mobile alpha
Though it's alpha, they are showing good progress. I've been looking into their development in github, seems like there's going to be cool stuff by early 2011.
UPDATE 2011-12-01 jQuery Mobile relased version 1.0, finally out of alpha. Read more about it here: http://jquerymobile.com/blog/2011/11/16/announcing-jquery-mobile-1-0/
If you're going to make a mobile version of a website, I am going to use jQuery Mobile. If you're going to make a “native” mobile application, I will be more likely use Sencha Touch.
http://tysonlloydcadenhead.com/blog/jquery-mobile-vs-sencha-touch
Sencha touch has lived longer than jquerymobile but I found that jquerymobile handles device back button much better than SenchaTouch.
I always consider back/history button handling is important in my apps, so I prefer jquerymobile.
I always consider myself a JavaScript programmer, but I like the fact that I rarely need to to type any JavaScript code when I use jquerymobile.
jquerymobile design is brilliant IMHO.
I am also in favor of sencha, JQM is really slow and failed to give an impression of an native app.
Praveen
why limit yourself...
Look into PhoneGap and Titanium Appcelerator
the make the comparison based on what you are trying to accomplish. I know Sencha Touch has a licensing fee and like you said jQM is not officially released yet.
This is a great time to be in the mobile space because there are so many viable options
I think jQuery mobile is easier to learn and seems to be very promising. Version 1.0 is not yet available, but its going to be a good product. I find it very attractive because it is based on jQuery - simplicity is the motto
Don't forget that there is also Dojo Toolkit Mobile. It looks nice, at least at first look and it is built on top of the proven and solid Dojo Toolkit core. http://dojotoolkit.org/features/mobile.
The Dojo Toolkit don't get too much audience recently but it looks like they made a lot of progress from the times it was a bit heavy, I think it is worth looking at it.
I've been trying out the sencha architect and to be honest ithas been a nightmare to get running.
My background is DotNet, html, javascript, VB, java and have been using eclipse etc for a while so am not a huge newbie with figuring out dependencys etc.
Here is what I have struck:
I went to the Sench site, downloaded Architect.
It then got me to download toolkit and sencha touch. I downlaoded exactly what was recommend / instructed by the help files / site.
I have Sencha Architect V2.1.0 Build 584., sencha-touch-2.0.1.1-commercial.zip, SenchaSDKTools-2.0.0-beta3-windows.exe
I also downloaded and installed a new java sdk / run time etc. The install has been done on a dead clean XP box (vmware). Web server is xampp.
Sencha does not recognise the SenchaSDKTools-2.0.0-beta3. You have to hack it using hard to find instructions. Even after hacking it the architect fails to use the proper SDK and gives error messages on deployment.
There have also been numerous errors to figure out along the way and issues where data just wont load even having followed instructions to the letter.
I have spent 11 hours getting to the point where the application will run properly without whinging but it wont deploy. It is bad enough learning a new tool / framework etc without the ide causing grief and the "instructional demos" leading you up the path.
There are lots of people getting the same errors all over.
After 15 hours of effort I am giving it up as a bad job and am returning to IBM XPages / PHP and Blueprint CSS with old fashioned, hand coded html5 / CSS3 and jquery / Ajax / JSon apps.
My reason for doing this: Application Architect keeps pushing you back to the command line. I love the command line, give me a bash shell and vi and I'm good to go. However for complex, multi file deplyoments such as mobile apps a good IDE is worth its weight in gold. Architect is not there yet. I keep needing to lift the hood and hack to get things working.
I originally looked at Sencha for a 12 year old who is interested in mobile apps and is looking for an ide to use. I tried it out - it is not suitable - even getting a hello world type app running is going to be too much for a newbie and the first app in the help files doesnt explain itself but has you copying code for pulling data from a web site you have to sign up for. (ccitybars app).
A big improvement for sencha will be when Architect works out of the box (possibly an installer with sdk, tools , touch and architect all in one) and the fisrt app -walk through is a simple hello world that then builds to entering data, saving data and then displaying data before going multi form.
I was faced with the same choice about half a year ago, then went for jQTouch instead of Sencha Touch, which I found to be extremely Javascript centered. I'm currently working on a port of that same project to jQuery Mobile and I think the transition will be much smoother than it would have been with a Sencha Touch project.
If you know basic PHP I strongly suggest jqmphp.com. Up and running in less than 3 days a whole online mobile based site to order food!
MoSync team has recently done an interesting comparison:
Which Mobile JavaScript framework is the best: jQuery Mobile, Sencha Touch, jQtouch, or Kendo UI?
http://www.codefessions.com/2012/04/mobile-javascript-frameworks-evaluation.html
http://www.codefessions.com/2012/04/which-mobile-javascript-framework-is.html
http://www.codefessions.com/2012/05/which-mobile-javascript-framework-is.html
jQueryMobile wins but huge boost in arm is because of licensing. I prefer jQueryMobile because I don't want someone(thing) else to write my markup, that way hacking becoming difficult (at least for me), however, I do have couple of HTML5 apps under my belt now, one each in jQM and Sencha Touch. Sencha Touch makes it smoother, very hard to learn though while jQM gets you started in a day, there are bug but you usually get around them because of amazing web community around this framework.
I've built a nice production app in a few days using Sencha Touch 2.0 and it's delivering as documented. And, it's FAST. There might be some bugs, but, when I've run into one (which, is rarely), there seemed to be many ways to approach a solution so that it's really not that relevant.
Sencha Touch looks great but it is difficult to use. The Sencha support forums offer minimal support. Sencha Touch 2.x is still in alpha is quite buggy
Sencha touch will be the best option is you are just starting because it is well documented and it has a community support. Also, with phonegap, you spend more time on the development and less on things about other mobile platforms. Phonegap will build the application for you , once you upload it to the builder .
Comparing the two is like comparing apples and grapes...though you want to develop mobile apps with both, the level of comfort with either depends entirely on you.
This chart might be helpful if you want to compare the features : http://www.markus-falk.com/mobile-frameworks-comparison-chart/
Sencha Touch based apps can only work on WebKit based browsers. JQueryMobile based apps can work on all mobile web browsers.
I think you can go ahead with JQueryMobile for next 2 to 3 years. I am expecting in 2-3 years all mobile browsers will be based on WebKit engine. Once all mobile browsers start supporting WebKit, move to the Sench Touch mainly because of very good quality user interface.
I suggest KendoUI
It is unbeatable and fast performance in a training of couple of days. Not to mention the fast update and new features and support for server side wrappers (asp.net, php, jsp). It is unique!
I have used both and they each have conditions where one is better suited then the other.
In my opinion you would use JQueryMobile when
1. You need a quick and light weight mobile implementation of an web application.
2. You have time constraints (definitely faster to learn and implement then Sencha Touch).
3. Native look and feel is not a requirement.
When making an extension to an existing web application where relatively simple functionalities have to be extended to extended to mobile (really fast and easy) I found JQM to be extremely useful and straight forward.
In my opinion you would use sencha when
1. You want a native look and feel
2. You want a higher degree of functionality on the mobile side (possible access to native api's through phone gap)
3. Targeting the latest smartphones (performance is impressive)

Good tutorials for starting Palm WebOS development?

Recently I've been getting more and more into mobile development. I am currently working with the iPhone and Android based devices.
Palm's new WebOS looks interesting.
Are there any good online tutorials for quickly getting up to speed on developing for the Palm WebOS?
The Palm Developer Network has some basic overviews: http://developer.palm.com/
They also have a section up there: Palm webOS: Developing Applications in JavaScript Using the Palm Mojo Framework. This may be a good start.
Palm webOS: Developing Applications in JavaScript Using the Palm Mojo Framework is a book in the making, available currently through O'Reilly Rough Cuts program).
You can easily read the first chapter.
That's the closest you can get currently from official sources. Unless you apply to their SDK early access program (sdkapplication.palm.com/sdkapplication) and they let you in (you can apply for it until the SDK is officially released to the public).
Of course, another thing we can do until the SDK is out is catch up on whatever technologies we individually need that programming for Palm's webOS will require: JavaScript, HTML5, CSS... and there's ton of material about these online. Actually, there are many websites dedicated to Palm Pre and webOS that sprung up recently. The one that is more programming oriented that I know of is webOShelp.net: take a look at their Getting started with webOS guide (www.weboshelp.net/getting-started-with-webos).
P.S. sorry about not clickable links, had to play the system somehow ;) - it won't allow me to post more than one link since I'm new here.
Now that the device is out, people are actively playing with the device. Best site I have found so far is (no affiliation) http://predev.wikidot.com
Also, if you root the device, you can look at the source for the shipped apps in /usr/palm/applications
I have additional notes at http://friendfeed.com/
The site www.weboshelp.net has quite a few good tutorials.
This blog has a good tutorials:
http://kmdarshan.com/blog/category/webos/

Resources