WP7 app development - Any advice on getting started? - Windows Phone 7 Software Development

Hey there, thanks for reading.
I decided that I want to learn how to program apps and possibly games for WP7.
Because my holidays are almost starting, now's the time for me to do so.
I already have Visual Studio for Windows Phone up and running, and I encountered the getting started pages on the official silverlight website.
However, it kinda feels like being thrown into the deep and having to do everything in one big leap, instead of being able to start with basics and then move on in smaller steps.
Does any of you have advice for me on what would be good ways to get started? Any advice is appreciated.
I do have vast experience with PHP, but I believe that the syntax is completely different from SL.
Thanks in advance!

My advice would be to learn the basics of c# first. Any previous online tutorials for c# apply to windows phone 7. There are some minor differences but the basics are the same.
Check out http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/threads which is the official forums for Windows Phone 7 and there's a lot of good info there.
The code samples at http://msdn.microsoft.com/en-us/library/ff431744(VS.92).aspx are also worth playing around with.

Ideally you want to know C# for a starters. There's plenty of tutorials on MSDN or the web, but I can also recommend buying the book: Pro C# 2010 and the .NET Platform from Apress.
It's learns you the language, and also goes over XAML related technologies, and even though it's mostly WPF (Windows Presentation Foundation) the core principles apply for Silverlight as well.
After you learned C#, it's time to learn Sivlerlight in dept, and by this I mean XAML, and the limitations in the .NET subset used for Silverlight.
For tools you wish to get Visual Studio 2010 Express, and Expression Blend 4. You can get the Release Candidate free for now, to try out development.
Make a note of that your computer need to support hardware-visualization to run the emulator without a incredible amount of lag!
If you're used to programming you might quickly learn Visual Studio, but Expression Blend requires a good amount of time to get used to. I'll recommend setting off a weekend where you use 2x8 hours to learn it.
You'll be using both Visual Studio and Expression Blend at the same time, C# for application-logic (ie. C# code) and Blend for design.
Designing in Blend is really simple, see for example expressionblend.png.
One of the articles I want to recommend you to read once you got into this entire XAML thing, is this article explaining how to do paging, as it's one of the core concepts, but also provides a good exercise in using Expression Blend.

Also, to get a handle of the basics, Microsoft has put together a site to encourage people to get involved with WP7 and Silverlight. The website is: http://www.microsoft.com/design/toolbox/
Its a real beginners course to all the programming one will be involved in on the WP7 platform. This won't get you very far in programming, but will teach you the absolute basics. From there you can always get assistance from the great members of XDA (me excluded)

Pretty cool site. Now we just need them to release a free-WP7 version of Expression Blend.
The current process to get started is way to messy, but I guess they already know that

Allright, thanks for these replies
My holidays are (unofficialy) starting in three days, so I'll have plenty of time available.
Luckily my rig runs the emulator buttersmooth (I ran the unlocked WP7 rom with it, to try the OS in it's current state) so that won't be an issue.
These links should get me going in the right direction (H)

Another must-have link is the unofficial Pivot and Panorama controls: http://phone.codeplex.com/

im ready for this!!!

Wow this looks like an interesting journey. Holidays? If you are a student, you can get a waiver on the $99 startup fee to post 5 applications on the windows marketplace. Check out www.dreamspark.com for more student resources.
Thanks for the information provided! I was stepping into WP7 app programming too.

Yea, thanks for telling me but I already knew about dreamspark
I've checked and I can enter by signing up with the e-mail my school provided.
However, since it's valid just one year im not using the key untill I actually own a WP7-device.

enadiz said:
Wow this looks like an interesting journey. Holidays? If you are a student, you can get a waiver on the $99 startup fee to post 5 applications on the windows marketplace. Check out www.dreamspark.com for more student resources.
Thanks for the information provided! I was stepping into WP7 app programming too.
Click to expand...
Click to collapse
Sounds quite awesome. I only had MSDNAA access so far, but I believe I should have Dreamspark access when I start on my bachelor of engineering, after the summer holidays.
Btw. I made a compilation of tools and blogs that'll help developers getting started, http://forum.xda-developers.com/showthread.php?t=711629

Windcape said:
Sounds quite awesome. I only had MSDNAA access so far, but I believe I should have Dreamspark access when I start on my bachelor of engineering, after the summer holidays.
Btw. I made a compilation of tools and blogs that'll help developers getting started, http://forum.xda-developers.com/showthread.php?t=711629
Click to expand...
Click to collapse
Yumm. I'll get down to learning.
The key needs to be renewed every year .. as long as you have your student email, you'll be fine

My first post on xda-developers... +_+!
Yes, as you were told C sharp learning is important so try hard to learn it then go on learning VS 2010 express and expression blend 4. I am new to WP7 dev too and like you ... am dreaming of building a good application indeed - Games are so tough and complex to build and needs teamwork I think-. I just strated leaning C# and have found a lot of good websites trough google search (Windcape compiled most of them in a useful thread you may bookmark)
However, there are a lot of ressources and books about C# and WP7 programming there in torrents world. you can search them by yourself.
Here is a small cd from lynda.com I just uploaded to demonoid.me.
Lynda Windows Phone 7 App Development
I can post links but you can search demonoid website for it.
If anyone needs invitation to demonoid he may PM me here
Also, for a good intorduction to WP7DT just search google for this series : Windows Phone 7 Jump Start
NB: I wish if we can found or make a small teams of biginners wm7 programmers;

hexham said:
NB: I wish if we can found or make a small teams of biginners wm7 programmers;
Click to expand...
Click to collapse
I'm currently studying Computer Science and i am very interested in developing to WP7. I don't have vast knowledge of C# but in other languages i'm good. Let me know if there is an opening for me . Besti wishes...

Do think about the Trial Version - my version was to short - so people were complaining about it...

I haven't read through the replies yet so apologies if I'm repeating anything, but I've been a .Net Developer for around five years now so I feel like this is something that I can actually comment on.
I didn't train in anything to do with computers I just fell into this programming lark, I actually trained as an Actor believe it or not. Through needing to design a database in order to record my Acting Accounts I eventually got into V.B.A. and after ending up with a part time job using V.B.A. was finally forced to learn .Net through requirement changes at work.
I only mention this, so as you know that I wasn't born to this sort of thing and had to struggle to get my head round it.
I started with vb.net as that was almost the same as using v.b.a. but last year decided to teach myself C#. I've not used PHP so can't comment on any similarities or otherwise but I do know this.
C# was a huge shock to my system, absolutely huge. I almost gave up after a week of trying to translate my existing code, but managed to persevere and I'd say that after about two months of forcing myself to do C# only, I felt comfortable with it. A year later and I'm completely fluent and happy with C#.
It's a bugger to look at, I don't find it elegant at all, but once you get your head round the syntax then it all starts to make sense.
Get a good C# book, I'm not sure of any good ones, I've not used any, and go with the lessons in there, but don't let that stop you trying to develop your own experimental stuff in the meantime.
Syntax basics
Curly Brackets {} tend to indicate a routine block
E.g. A Function/Method/Void called Test would look like this
public void Test()
{
... Your code goes here
}
This is also the case with an If statement
E.g.
if(A==B)
{
... Your code goes here
}
Scoping/Dimming/Creating an object requires the Object type first followed by it's name
E.g. TextBox _textbox
The object being created is a TextBox and it's name is _textbox
A semi colon ; indicates the end of a block of code. If you have a particularly long line of code then you can use multiple lines but will
only need to insert the ; at the end of that particularly block of code
E.g. A=1; (This is the standard way of doing this)
A=
1; (This is not the way that I would actually do this but is just an example of what is permissable.)
I always found it useful to find C# code on the web and try to read and understand it.
The most important thing is though, don't give up. Visual Studio is widely considered one of the best coding tools in the industry and C# itself, once you get past the first impressions is a really easy language to pick up.

Thanks for the detailed explanation - the use of accolades ('{}'), multiple lines and the semicolon and the syntaxt for statements looks pretty similar to PHP.
That might just be enough motivation for me to finally get started.
yes, even though I asked about advice over halve a year ago, I never got quite to it... Maybe these similarities plus the fact that I have a Microsoft Dreamspark developer account plus the fact that in March I might have a device will be of help. If that's not enough motivation, I don't know what will be :#

Go for it!
You can always ask questions here or on somewhere like StackOverflow.com if you get stuck.
Object Orientation takes some getting used to, but atleast the garbage collector should look after your memory for you
Dave

Interesting, I hope you will get something.

Just adding my two cents here...
I thoroughly recommend that anyone getting into WP7 programming takes a very good look at the MVVM pattern (see here - it's WPF based but the difference is really only in the objects available, most silverlight code can be directly ported to WPF and vice versa). Using this pattern not only enables you to easily swp the UI for your app, it also makes debugging a whole lot easier due to the lack of UI code in the classes that actually do the work (the view models).
Another thing to try and get your head around is asynchronous programming with services, but that is not really something you want to start out with Sorry, forgot we were dealing with silverlight for a minute this is something you're going to have to learn right from the start, along with using background threads for processing data.
For anyone that needs any specific advice feel free to PM me. I'm new to the WP7 thing, but looking at the classes available which aren't available in silverlight it shouldn't be too hard to get into. And the design patterns will be the same.

Related

One of the best WM apps, Griff, looking to become open source- will you take over?

So one of the best apps on Windows Mobile, Griff, is about to die. The developer doesn't want to continue with it. I suggested that he make it open source and let the community take over, rather than let it die. He told me to post an inquiry here and see if there was any interest from the community.
Do any of you developers want to take over? Some more info on Griff:
http://www.planetgriff.com/galleria.php
http://www.planetgriff.com/index.php
The thread where the developer asks me to post here to possibly find someone to take over an open source project:
http://www.planetgriff.com/forum/viewtopic.php?p=1528
For those who don't know, this is the best mobile music making/sequencing app on the market. It has won plenty opf awards. It's virtually unchanged since 2000 (except for adding support for additional resolutions) and still today is better than anything on the iPhone.
I'm hoping there is someone out there who will take over this project and make it continue to be the best app out there as we move onto capacitive screen devices and devices that don't have a d-pad.
If you know of a better place to post this, please post it there...
Hmm Im not really into music making on my phone but It looks like a good piece of software
Im not a developer but I CAN do this
~~~~~BUMP~~~~~~
(lol hope it helps)
Hrm... very very interesting indeed! This would blend my personal life (writing music), professional life (development) and my hobbies (big focus on PDA's and WinMo for the last 4+ years) very well.
I'd be interested in joining a group to do this - I couldn't take it over alone (there just isn't enough time).
What language / libraries are used?
I was a C/C++ programmer at one time. Today I'm mainly enterprise Java with a smattering of other stuff. I've also designed quite a bit as well (project plans, UML, ROI, yada yada yada corporate stuff).
I run our corporate builds and manage developer assignments / team coordination - so out of the box I can pledge to help with source code management and developer support / project coordination. These are easy for me as I do 'em all day every day. Besides active development, as well
I'd like to see a few people express interest and I think I'd be willing to jump in with both feet here - especially if it migrated to a freeware kind of system.
~Eric
Oh please someone take this over and make it COOL. It has potential but the UI is so unintuitive. I been doing pro audio for years and years and years and I had to drop the idea of killing time with this app.
B-to-the-IZUMP
Griff is easily one of the best applications for music production on windows mobile and indeed any mobile platform.
Im not a dev but i write music... i would be happy to get involved with this project somehow.
i do have some experience with programming but my code would probably be buggy as hell
I am personally very interested in this. only demoed the thing but found it really, really brilliant.
I can't promise I will have much free time for it, but I will be more than happy to give all the support I can.
I can do sourceforge, github, C/C++ also for Windows Mobile, C# for what matters. I can also do a lot of other things that probably don't apply in this context
cheers,
Aldo
bloody hell.. I didnt even know such an app existed.. thanks for sharing.. now who is going to take it over.
devices that don't have a d-pad.
Click to expand...
Click to collapse
you mean 500+$ phones.
Edit: Just excited to see offers of contribution
You might be late on your ESP payment, looks like service is down and giving you erroneous insight.
Click to expand...
Click to collapse
fixed now, sry.
*bow* thank you, I'm still optomistic that a project like this can come together and resurrect a great piece of paid software into a community-driven piece of open source and freeware.
~Eric
And I didnt heard of this software before now?
Greetings and what a piece of software.
I'm a producer myself and have been looking for a software as this, looks awsome.
I'm not a developer but hoping that someone here will take over this fantastic project.
Haven't used Griff in a few years, but I'd would LOVE LOVE LOVE to see this project brought current.
Wow
This looks like something that could blend so well into an HD2.....and give Intua Beat Maker (iPhone), a very good run for the money.
I looks like it just needs a home start and a drum pad section, and it matches the best iPhone has to offer.
I hope someone takes this and runs with it.
please make it happend!
Greywolf_Ghost said:
Wow
This looks like something that could blend so well into an HD2.....and give Intua Beat Maker (iPhone), a very good run for the money.
I looks like it just needs a home start and a drum pad section, and it matches the best iPhone has to offer.
I hope someone takes this and runs with it.
Click to expand...
Click to collapse
that would be nice
So here's what I know so far - Griff is primarily a single developer project with ~ 300 cpp/.h files based on the MFC framework. There's a couple of people who write plugins for it.
So, I'm in if Daniel (the developer / code owner) decides to go open-source with the project. Looks like we have several SMEs and testers ready to go - anyone interested in contributing with the coding? I can go it alone, but life has its time constraints
~Eric
eknutson said:
So here's what I know so far - Griff is primarily a single developer project with ~ 300 cpp/.h files based on the MFC framework. There's a couple of people who write plugins for it.
So, I'm in if Daniel (the developer / code owner) decides to go open-source with the project. Looks like we have several SMEs and testers ready to go - anyone interested in contributing with the coding? I can go it alone, but life has its time constraints
~Eric
Click to expand...
Click to collapse
I don't now much about coding, but I do own Visual Studio 2008 (was planning on getting into it) and I would be happy to try. I do make a lot of music on the PC though (using Cubase) so I could definitely contribute some ideas at least.
I would definitely be willing to help with the coding too provided someone can help me out when I get stuck.
awesome SD!
~Eric
Neither I was aware about this application. Thanks for bringing it to my attention.
I play the guitar and the piano myself and occasionally I do some home-recording with Cubase although it is just a hobby. But still, I have a few ideas and knowledge about the music-tools available out there.
Playing around with Cubase is not my only hobby - I am also fond of programming. Unfortunately I hardly know any C++ at all since I am old "Basic"-user and now I am programming (both for desktop and Windows Mobile) in the .Net enviroment with C# and VB.Net.
So I doubt I could help with programming but I could indeed help with beta-testing (since I know the "logic" and way of thinking normally used by a programmer).
Just to summarize, I am ready to give a helping hand.

angry devs stop living in the stone age

face it, low level apis and languages are for hobbyists now adays. programming languages like C# are huge. .Net makes it so easy and quick to write applications. that's what professionals use. the amount of applications released will be explosive. go ahead, go to android, it's crappy java, and if you use the native development kit,it compiles against the old instruction set. android has hardly even made a dent in the market. it will never be mainstream,just like linux. whine all you want, but microsoft got a bad rap because of crappy coders who crashed the os all the time. it is no longer a hobbyist OS but a consumer OS.
no matter how easy C# is and everything but sometimes you still need access to low level functionality. I agree it's a good idea to recommend modern languages for development on WP7 or any future OS but I don't think it's alright to completely deny the privileged mode APIs, like they were previously called on WM. It's alright if you need to get special certificates if you want to do such risky things (you need that already on WM6) but it still should be possible after all.
I agree about the Android part of your post. On this board it seems to get hyped quited a lot but in real life sales are not really that groundbreaking like everyone thinks. WM is still a lot stronger. Still, I don't even see any advantages you'd get with a switch to Android!
I'm a .net dev but there's instances where you need the unmanaged APIs to do things. There's lots of gaps in the .net compact framework.
I got a nexus one for me and my wife. I was a WM fanboy but I have to say I will never use a WM device again. I have a zune hd and it sucks at everything. The new browser is worse then WM 6.5. I think WM7 is gonna fail big time. What are you talking about that android is not getting market share? Android will gain 20% more market share in two years.
http://online.wsj.com/article/BT-CO-20100209-717900.html
http://www.readwriteweb.com/archives/android_market_share_doubles_will_overtake_palm_soon.php
http://phandroid.com/2009/11/15/android-stealing-symbian-winmo-market-share/
shep211 said:
I got a nexus one for me and my wife. I was a WM fanboy but I have to say I will never use a WM device again. I have a zune hd and it sucks at everything. The new browser is worse then WM 6.5. I think WM7 is gonna fail big time. What are you talking about that android is not getting market share? Android will gain 20% more market share in two years.
http://online.wsj.com/article/BT-CO-20100209-717900.html
http://www.readwriteweb.com/archives/android_market_share_doubles_will_overtake_palm_soon.php
http://phandroid.com/2009/11/15/android-stealing-symbian-winmo-market-share/
Click to expand...
Click to collapse
Noone knows what's going to happen in two years. That prediction was also made before WP7 was announced so it's somewhat meaningless now. Who said the browser is the same one that's in the ZuneHD? The web browser was an afterthought for the ZuneHD and it's a prime feature of WP7. I expect it to be much improved.
RustyGrom said:
Noone knows what's going to happen in two years. That prediction was also made before WP7 was announced so it's somewhat meaningless now. Who said the browser is the same one that's in the ZuneHD? The web browser was an afterthought for the ZuneHD and it's a prime feature of WP7. I expect it to be much improved.
Click to expand...
Click to collapse
I have seen all the wm7 videos and its the same os. They said WM7 would not be based off of the zune hd os but it is. Watch the zune hd videos then WM7 videos. Same os and same browser. They are just adding phone support. I preordered my zune hd and was every unhappy with it. Nothing new or better then ipod. The browser has to be the worst browsing experience ever. Cant download podcast from the phone. You have to dock it and load the podcast on the phone. Cant listen to music without headphones. Tons and tons of stuff that makes you think WTF.
Interesting considering the browser IS different, and you other complaints wont be there on a phone.
Its not the same OS, its just they standardizing there UIs.
RAMMANN said:
no matter how easy C# is and everything but sometimes you still need access to low level functionality. I agree it's a good idea to recommend modern languages for development on WP7 or any future OS but I don't think it's alright to completely deny the privileged mode APIs, like they were previously called on WM. It's alright if you need to get special certificates if you want to do such risky things (you need that already on WM6) but it still should be possible after all.
Click to expand...
Click to collapse
RustyGrom said:
I'm a .net dev but there's instances where you need the unmanaged APIs to do things. There's lots of gaps in the .net compact framework.
Click to expand...
Click to collapse
yes i know we need certain APIs to do certain things,but nobody knows yet what the new framework will be like. who's to say what is limited and what isn't when we don't have any of this info yet.
I completely agree with o2neouzr. Whay are people whining about it when they have no idea what will and won't be included in .NET CF 4?
I've only done a small amount of phone development on WM6 and C# has been fine. My app responds to missed calls and texts when I'm on the motorbike. I recently discussed porting it to the iPhone with a friend. It turns out even really basic stuff like sending a text, knowing if you've missed a call, running with the screen off are all impossible on the iPhone - even with approval from Apple. I reckon we'll be allowed to do a reasonable amount. It'll still be better than the crappy iPhone.
Think of an Operating System like the rule of law in a country; now there is a rumor that the supreme leaders decide to enforce that the only dress code allowed is T-Shirt, of course, the rationals in breadth and depth as in any totalitarian country is only known to the supreme leaders.
"Death to fashion designers!" yelled the fanatics.
"They can't see the simplicity of T-Shirt!" chimed the supporters.
" It is easy to make!!" cried the guards.
" It takes only a minute to paint!!!" said the propagandist.
" It is ready for mass market!!!!" snapped the enforcers to anyone who dare to challenge the new establishment.
"Burn in hell for daring to wear any other dress! T-Shirt is the future! Any one wearing dress is living in the stone age !"
Of course it is hard for concern citizens like we, fashion designers - native developers, to have a decent conversation with this group of people. How can words explain the beauty of our love ones (customers), walking through the crowds of T-Shirts --- in designers' dress. How can we explain the search of excellence, as the way of life, to so many of us, perfecting the art, year after year, to bring out the best of us for the world to see the beauty of free expression.
It is not like that we can't make T-Shirt, it is no-brainer for most of us. The beauty of simplicity is simple but not simpler. A native developers try to achieve simplicity without making things simpler.
Fred23 said:
I completely agree with o2neouzr. Whay are people whining about it when they have no idea what will and won't be included in .NET CF 4?
Click to expand...
Click to collapse
It's not really about having the limited stuff of .NET CF in mind and doing PInvoke for really standard issues. It's about the whole architecture of the runtime. can you do DLL injection or hook into another process with .NET? Not at all. DLLs don't even exist there. You understand... we need the native API if we want to do all the funny things. Recent example: On the Omnia2 there's the taskmon service running which is closing applications if you open more than 3 or 4 (!!!!). chainfire guy wrote a tool that injects into the service to stop this nonsense. More examples are the File explorer extensions, Quick menu, XTask etc. You don't need this stuff? Fine! Go get an iphone!
RAMMANN said:
It's not really about having the limited stuff of .NET CF in mind and doing PInvoke for really standard issues. It's about the whole architecture of the runtime. can you do DLL injection or hook into another process with .NET? Not at all. DLLs don't even exist there. You understand... we need the native API if we want to do all the funny things. Recent example: On the Omnia2 there's the taskmon service running which is closing applications if you open more than 3 or 4 (!!!!). chainfire guy wrote a tool that injects into the service to stop this nonsense. More examples are the File explorer extensions, Quick menu, XTask etc. You don't need this stuff? Fine! Go get an iphone!
Click to expand...
Click to collapse
Ummmmmmmmmm DLLs do exist in .net. In fact, pretty much the entire .net framework is just a collection of DLLs. Have you ever even written a .net app or any software at all for that matter? It seems your hatred is extremely unfounded.
There likely won't be a file explorer to extend and all of the other things you list get into modifying the UI so those won't be allowed either. They're ugly hacks that shouldn't be needed on any platform. Yea, WinMo needed them to cover up it's many flaws.
You don't need native APIs to do those things necessarily. There just needs to be managed APIs to do them. They won't be allowing it though so it's a moot point.
If you want to completely replace the UI, go get an Anroid phone!
There's a middle ground that they need to find. I feel that's what they're shooting for but it doesn't sound like they're gonna hit it. I'm expecting only a subset of .net CF as even that would allow you to do 'too much' in their mind.
alright I admit I have written bull****. of course there are DLLs in .NET but I rather mean they are handled little different than usual DLLs. So I thought common sense is you call them assemblies instead of DLLs. oh! And yes I have written Windows applications in .NET but always refrained from using it on WM due to performance issues and because it's so incomplete and for all the interesting stuff you have to use PInvoke anyway. Also if you at least had checked the link in my signature before judging then you would have seen that I'm actually writing software for WM. besides that, it's even my daily job to write software for Windows/WM for like... ahm... 12 years now.
RustyGrom said:
There likely won't be a file explorer to extend and all of the other things you list get into modifying the UI so those won't be allowed either. They're ugly hacks that shouldn't be needed on any platform. Yea, WinMo needed them to cover up it's many flaws.
You don't need native APIs to do those things necessarily. There just needs to be managed APIs to do them. They won't be allowing it though so it's a moot point.
Click to expand...
Click to collapse
That's the point actually. What I love about WM is that you can easily (or not so easy) hack your way through it and if that's not allowed anymore in a new revision then a lot of fun is taken for me and I guess for "a few more folks" here on XDA. WM like it is with 6.5.x is REALLY comfortable with me and that's no joke! I'm trying to customize and modify it because it's a lot of fun to do so, not because the OS is so bad. Currently I'm running 6.5.x with Sense 2.5 on my Topaz and everything is running really smooth and responsive and I can't complain at all!!
RustyGrom said:
If you want to completely replace the UI, go get an Anroid phone!
Click to expand...
Click to collapse
I hate Android! I don't really want to code in Java. And their native API is a joke isn't it? If WP7 isn't suitable anymore (and right now we don't really know for sure) then I have to keep going with the old **** aka WM 6.5.x until I'm old and grey. why should I change OS if there's nothing that matches the customization possibilites of our present OS?
I could understand the frustration for not having full access to native API, full multitasking, etc.
It will be no joy ... no fun ... especially when you simply cannot customize the UI "the way you want" (You can still customize the WP7 start screen).
You cannot express your full creativity.
That is really valid concern.
But ....................................
Could this "new situation of WP7" trigger another kind of creativity?
To the extreme, who would think creating fart application? I know, probably this is a bad example of creativity, but still ... it is kind of creativity.
My point, in whatever situation, people will simply adapt and certain people will excel with their creativity!
Could that be YOU?
RAMMANN said:
I hate Android! I don't really want to code in Java. And their native API is a joke isn't it? If WP7 isn't suitable anymore (and right now we don't really know for sure) then I have to keep going with the old **** aka WM 6.5.x until I'm old and grey. why should I change OS if there's nothing that matches the customization possibilites of our present OS?
Click to expand...
Click to collapse
RAMMANN said:
If WP7 isn't suitable anymore (and right now we don't really know for sure) then I have to keep going with the old **** aka WM 6.5.x until I'm old and grey. why should I change OS if there's nothing that matches the customization possibilites of our present OS?
Click to expand...
Click to collapse
If I understand this Charlie Kindel (who supposedly is the guy in charge of all this API/SDK stuff), it's not their intention to lock the "fun stuff" out indefinitely. What he's saying is more in the lines of "we want a consistent and logical environment/ecosystem for developers and users, and in order to achieve that, we need to change from the "let's push everything we have out the door" mentality towards "let's make it really good", and this requires serious focused step-by-step approach". They want to start with "consumer application" and hobbyist developers (the latter probably means fart app makers and such), which is understandable because they want to build consumer appeal first. Other categories of developers will be addressed after that.
So, while I don't expect much "fun" you're talking about in WP7, I think this will evolve over time. It's unfortunate that we're not getting things to play with right now, but maybe you won't need to wait until you are old and grey haired. And also maybe we'll really get great APIs/SDK, which will be more useful, consistent and complete than the current incompletely and sometimes incredibly poorly documented mess. Just trying to be positive here.
RAMMANN said:
That's the point actually. What I love about WM is that you can easily (or not so easy) hack your way through it and if that's not allowed anymore in a new revision then a lot of fun is taken for me and I guess for "a few more folks" here on XDA. WM like it is with 6.5.x is REALLY comfortable with me and that's no joke! I'm trying to customize and modify it because it's a lot of fun to do so, not because the OS is so bad. Currently I'm running 6.5.x with Sense 2.5 on my Topaz and everything is running really smooth and responsive and I can't complain at all!!
I hate Android! I don't really want to code in Java. And their native API is a joke isn't it? If WP7 isn't suitable anymore (and right now we don't really know for sure) then I have to keep going with the old **** aka WM 6.5.x until I'm old and grey. why should I change OS if there's nothing that matches the customization possibilites of our present OS?
Click to expand...
Click to collapse
I agree with you. Many people hate WM6.5, I like it. I enjoy the customizability as many others on here do. However, I would also enjoy 'retiring' from the need to do that. It's kind of annoying knowing that the first thing I have to do when I get a new phone is go home and HardSPL it and flash a new ROM. I've heard some of the newer devices are much better out the door (HD2 for example) but haven't seen this for myself.
I don't think the members of this forum are part of Microsoft's target audience for end users. Devs, yea, but not end users. They are shooting for people disenchanted with their iPhone, Android, and more importantly the other 75% of the cell phone market that's still using "feature phones" (aka dumb phones).
It definitely looks like MS is going to lock down much more than WM6.5. Will we still be cooking custom roms? My guess is yes. But your common user will have more restrictions on what apps can and can't do.
I look at this as a new challenge more than anything else.
vangrieg said:
If I understand this Charlie Kindel (who supposedly is the guy in charge of all this API/SDK stuff), it's not their intention to lock the "fun stuff" out indefinitely. What he's saying is more in the lines of "we want a consistent and logical environment/ecosystem for developers and users, and in order to achieve that, we need to change from the "let's push everything we have out the door" mentality towards "let's make it really good", and this requires serious focused step-by-step approach". They want to start with "consumer application" and hobbyist developers (the latter probably means fart app makers and such), which is understandable because they want to build consumer appeal first. Other categories of developers will be addressed after that.
So, while I don't expect much "fun" you're talking about in WP7, I think this will evolve over time. It's unfortunate that we're not getting things to play with right now, but maybe you won't need to wait until you are old and grey haired. And also maybe we'll really get great APIs/SDK, which will be more useful, consistent and complete than the current incompletely and sometimes incredibly poorly documented mess. Just trying to be positive here.
Click to expand...
Click to collapse
That's a good way to look at it. I just hope that they don't get too restrictive from the start. I think the .net CF would be a good starting point that they should add onto but it almost sounds like they're only picking and choosing pieces from it. If we've got the whole .net CF (maybe minus a few things they don't want us doing) I would be fine with that.
RustyGrom said:
I agree with you. Many people hate WM6.5, I like it. I enjoy the customizability as many others on here do. However, I would also enjoy 'retiring' from the need to do that. It's kind of annoying knowing that the first thing I have to do when I get a new phone is go home and HardSPL it and flash a new ROM. I've heard some of the newer devices are much better out the door (HD2 for example) but haven't seen this for myself.
Click to expand...
Click to collapse
I have used my Topaz with the 6.1 factory ROM for at least 2-3 months. At this time I couldn't complain. I didn't face any issues. I only started to flash new ROMs when 6.5 and later issues were available...
About retiring... I don't think you will. The need to immediately flash a new WP7 device is always given. Just imagine you got a new phone from a Telecom contract and you got all your hubs in pink...
RustyGrom said:
I think the .net CF would be a good starting point that they should add onto but it almost sounds like they're only picking and choosing pieces from it. If we've got the whole .net CF (maybe minus a few things they don't want us doing) I would be fine with that.
Click to expand...
Click to collapse
I'm not much a developer (it's not my profession, I just did a couple of things for fun), but, apart from performance issues which can more or less be improved in the new OS, I've seen two types of limitations with .Net CF on WM 6.x: it's been nearly impossible to make nice UI without awful performance, and there are big gaps in terms of accessing "low-level" and sometimes not so low-level stuff and hence need for PInvoke.
The first issue will probably be addressed by Silverlight and, possibly, better built-in UI controls and such. The second will probably be partly addressed by OS-level push, "live feed" APIs, which sometimes might help overcome the limitations of SNAPI. The obvious question marks are things like non-SNAPI event handling such as hardware key processing, power management, device IO etc. Theoretically, this could be done in an environment such as .Net, why not, but not in its current incarnation of CF 3.5. If they added functionality to .Net, it could make life easier for devs.
Obviously though, some things just aren't realistic in managed code, so no alternative browsers/video players for us apart from shells over MS engines (which means no .mkv support if it's not built into the OS already). It could be possible, though, if they're serious in trying to do things right this time, that they want to create those APIs/SDK together with devs. Say, it would be an awesome, albeit slow, path to sit down with CoreCodec and build a piece of the SDK on a specific case, understanding and overcoming the challenges step by step. Don't know if we can hope to get that kind of attitude though...
It's good to use .NET languages, but it is limited, at least on CompactFramework, so it's impossible to use ONLY .NET: you have to use unmanaged code for creating some things that .NET doesn't allow to.
vangrieg said:
I'm not much a developer (it's not my profession, I just did a couple of things for fun), but, apart from performance issues which can more or less be improved in the new OS, I've seen two types of limitations with .Net CF on WM 6.x: it's been nearly impossible to make nice UI without awful performance, and there are big gaps in terms of accessing "low-level" and sometimes not so low-level stuff and hence need for PInvoke.
The first issue will probably be addressed by Silverlight and, possibly, better built-in UI controls and such. The second will probably be partly addressed by OS-level push, "live feed" APIs, which sometimes might help overcome the limitations of SNAPI. The obvious question marks are things like non-SNAPI event handling such as hardware key processing, power management, device IO etc. Theoretically, this could be done in an environment such as .Net, why not, but not in its current incarnation of CF 3.5. If they added functionality to .Net, it could make life easier for devs.
Obviously though, some things just aren't realistic in managed code, so no alternative browsers/video players for us apart from shells over MS engines (which means no .mkv support if it's not built into the OS already). It could be possible, though, if they're serious in trying to do things right this time, that they want to create those APIs/SDK together with devs. Say, it would be an awesome, albeit slow, path to sit down with CoreCodec and build a piece of the SDK on a specific case, understanding and overcoming the challenges step by step. Don't know if we can hope to get that kind of attitude though...
Click to expand...
Click to collapse
Yup. I'm expecting a 'revolution' of sorts in the UI standpoint. Like I've stated previously, it sucks trying to make a good, finger-friendly UI. XNA will make game/3d creation a breeze. Silverlight will be awesome for more traditional style UIs. I'm just wondering how high level and low level they'll get. For example, if I wanted to make an app that looked exactly like the main UI of the phone would I be able to just create a panel object, give it the text for the title, text and controls on that panel, and it will take care of the placement, input control, etc? Or what if I want to go the opposite route and create a UI of my own, will I be able to do that? I'm expecting things like button inputs to be provided. It would be crazy for them not to. That's part of the benefit of standardizing the buttons, they can easily bubble those up to devs.
The leaked docs show that native APIs and unmanaged code will be available to an extent but only to OEMs and carriers. I'm sure if people make enough noise they'll back down and approve apps that make use of that for others as well if they show the need. Microsoft's corporate culture traditionally hasn't been as 'religious' as Apple's and is more willing to back down on things if pushed.

XNA(GS4) & VB integration means you can do whatever you want.

http://www.gamasutra.com/view/news/27589/GDC_Microsoft_Announces_XNA_Game_Studio_40.php
^it's only a matter of time before you l337 ha><ors will find a way to customize EVERYTHING on WP7S. i got a lot of confidence in all of you cookers.
personally i'm really excited to see what you guys will come up with, not just the standard offerings that OEMs will give us.
if you thinking cooking ROMs now is l337... just wait til you start truly diving into VB and using real powerhouse computer languages to bring a new look to the new phones.
i am already requesting this:
please, som1 'cook' up a LCARs star trek TNG UI complete w/sound fx =). i think the "tricorder" is no longer sci-fi. it's REAL and it's ON
I must have missed the memo when VB became "1337"
it's a mean to an end =P. a tool. ultimately it's l337 ha><ors on here will figure a way around the restrictions and put in their own UI designs =). i don't doubt it. it'll simply be a matter of time and figuring out the BIOS portions. these phones have like a BIOS type stuff like PCs don't they?:
JediFonger said:
if you thinking cooking ROMs now is l337... just wait til you start truly diving into VB and using real powerhouse computer languages to bring a new look to the new phones.
Click to expand...
Click to collapse
Sorry, is this VB as in "VisualBasic" or something else that is abbreviated to "VB"? Because I'm really not recognising that as a description of VisualBasic.
JediFonger said:
it's a mean to an end =P. a tool. ultimately it's l337 ha><ors on here will figure a way around the restrictions and put in their own UI designs =). i don't doubt it. it'll simply be a matter of time and figuring out the BIOS portions. these phones have like a BIOS type stuff like PCs don't they?:
Click to expand...
Click to collapse
Ah, cool, so you're just giving us textual diarrhea and don't really have a clue what you're on about?
Cheers for the link, anyway.
Shasarak said:
Sorry, is this VB as in "VisualBasic" or something else that is abbreviated to "VB"? Because I'm really not recognising that as a description of VisualBasic.
Click to expand...
Click to collapse
may be typo,
I think is VS (Visual studio )
But why XNA don't support VB.net?
elyl, every1 asks me all the time the same question IRL . muhahaha
i think i'm referring to the whole software development package in general. i still use 'old terms' like VisualBasic to refer to the whole 2008 .net C#, etc.etc.etc. and all new languages that are used =P
WP7 is going to support .NET and Silverlight. All managed code so they'll limitations to what you can do. On the brightside that also means they'll be limitations to how much a program can mess up your device lol.
XNA 3.1 doesn't support VB through VS.NET, but you logically, you should be able to use VB for XNA in some fasion, considering it all goes to CLR anyways.
This post is retarded though. WM6.5 had already had access to .NET CF which is alot more complex than the .NET Framework they are exposing to WM7. Where WM7 wins is with Silverlight and XNA. But then again, even both of those frameworks rely on exactly what pieces of the .NET Framework they make available.
If WM7 programming is anything like the Zune HD, expect pure failure. Zune HD SDK is nothing but an embarssment to Microsoft and developers who even want to code with it. I can't imagine Microsoft would make a similar move with WM7, but if they do, Android and iPhone, hell even Palm will have a lead.
Only time can tell, and that time is in a few day. The Beta SDK will be released to MIX Attendees, TAP Members and MSDN Subscribers come monday/tuesday. Expect next week to be a huge week in the development and potential for success of WM7.
cohowap said:
Only time can tell, and that time is in a few day. The Beta SDK will be released to MIX Attendees, TAP Members and MSDN Subscribers come monday/tuesday. Expect next week to be a huge week in the development and potential for success of WM7.
Click to expand...
Click to collapse
Not that I don't believe you (it makes sense) but where'd you hear that?
JediFonger said:
i still use 'old terms' like VisualBasic to refer to the whole 2008 .net C#, etc.etc.etc. and all new languages that are used =P
Click to expand...
Click to collapse
..Don't

[Q] can some point me to how can I create my own app

Can some some one point me to the right way and what do I need to know in term of computer language.?
Sent from my HTC-HD2 using Board Express
Check out http://create.msdn.com - it has everything you'll need to get started.
As for knowledge, it really depends on the app you're wanting to develop. If you can get away with using data already available on the net, with little to no processing needed, you can really build the UI in Blend without any programming experience what so ever. Sure, you'll need to wire up some events for buttons and what not, but even this is almost automatic.
If you do need to process the data before using it you should have at least a minimum knowledge of programming though. It really doesn't matter what language, but C# is what's used for WP7 (you can also use VB, but I don't think many do).
Just to point out that C# is almost identical to Java.
You can download WP7 SDK and free Visual Studio editions from Microsoft to start making WP7 apps. Normal apps are written using .NET (you can pick C#, VB.NET or Managed C++) as SilverLight app. Games are also written in .NET but on XNA framework. There maybe additional charges for XNA framework.
The SDK should come with a WP7 emulator software. That's where you spend your time debug and play with your app. In order to load the app to your phone, you will need to pay Microsoft $99/year to open a dev account so that you can pushlish the app to market or setup your phone as a dev phone so that you can load your own apps directly to the phone.
Or you can go jailbreak route and sideload apps that way.
Thanks, m a rookie when it comes to this. i just started to take c++. anyways everyone start with no knowledge right.
brummiesteven said:
Just to point out that C# is almost identical to Java.
Click to expand...
Click to collapse
I maybe should have elaborated on this, at least I intended to
Anyways, Java is generally a learners language, you'll find it quite easy to learn as there are lots of tutorials etc on the internet. If you were to ever study computer science you'd also do java
So yeah, Java might be a good thing to start learning then when you get good enough C# will be a breese.
brummiesteven said:
So yeah, Java might be a good thing to start learning then when you get good enough C# will be a breese.
Click to expand...
Click to collapse
Not sure I agree, as a complete novice you're better off going directly for C# (if that's the end goal) rather than using java as a stepping stone. It may end up confusing the hell out of you if you've done things in java a certain way only to find that C# does them completely different.
That said, I still think the choice of language is secondary - first and foremost you have to get into the right mindset, i.e. you have to learn programming, not a programming language. Of course, for WP7 development (at least for now) it very much depends on the type of app you're doing as a lot (too much?) can be done without ever touching code.
programming has a lot of similarities once you've done enough (same as learning languages in general), however, the beginning learn curve is HUGE. Understanding things from variables to classes to object orientation... and that's just the starters. I wouldn't worry about what language is better/easier, both java and C# are some of the easiest and most powerful around, but it's wrapping your head around the basics in general that is a real challenge.
i asked what language because i started my c++ programming this semester and i wanted to know if this the right path on making apps for the phones. as a right now im doing allot of read and watching allot of videos before i try of making a app, since i never have made one.
to be honest, focus on uni first. learn the principles of programming which you'll definitely cover in C++. get them down pat. once your semester is up and you ace the course, then move to another platform. early on it's not good to jump between many languages. it stuffs up your understanding pretty quickly. if you focus on 1, get it solid, it makes it easier to move to the next, and following.
eventually they'll just feel like 1 language... but focus on 1 to begin with, and that should be your studies, not a phone app.
@emigrating great post. That site has started my journey on App Development for WP7. For any other absolute n00b such as me, check out this series of short videos. It explains everything as clear as day and seems to go at a reasonable pace for a beginner like me. THere are 64 vid's in total, i'm currently on the 5th and am loving it
Thanks , I'm going to check them out right now.
Audio said:
@emigrating great post. That site has started my journey on App Development for WP7. For any other absolute n00b such as me, check out this series of short videos. It explains everything as clear as day and seems to go at a reasonable pace for a beginner like me. THere are 64 vid's in total, i'm currently on the 5th and am loving it
Click to expand...
Click to collapse
For anyone that can help.
I made I calculator app like many have started with, but I have a problem, it only calculate 2 terms. How can i fix this?. Plus I'm trying to to a tip calculator now, I have don't a simple one in c++ can I use the same code?
Sent from my HTC-HD2 using Board Express

How do I become a DEV?

I was wondering what resources are out there to become a DEV and make my own ROM's. I have googled it a little bit and not really found anything worth while so far. I did run across a good book but its not going to be published for another 2 months. Does anyone know of any tutorials? Books? How to guides?
There are plenty of kitchens right here on xda. And remember when you search on google add on xda to whatever you are searching. I had a bunch of bookmarks for this but never backed them up. Sorry buddy.
Sent from my BAD A$$ EPIC TOUCH 4G
I didn't think about using the term kitchen when searching. I will give that a shot. Thanks.
Sent from my SPH-D710 using Tapatalk
bdpatch said:
I was wondering what resources are out there to become a DEV and make my own ROM's. I have googled it a little bit and not really found anything worth while so far. I did run across a good book but its not going to be published for another 2 months. Does anyone know of any tutorials? Books? How to guides?
Click to expand...
Click to collapse
I would read google's documentation on Android, learn Linux commands, and also learn java. This is a good start. If you use kitchens, you are not dev'ing. After this, reading the cyanogen wiki will teach you some of the less "official" deving methods.
Edit:
Links
First go here and learn all of it. (weeks of hard work and dedication)
http://linuxcommand.org/index.php
Then go to a local library and pick up a recently published book on java programming and learn it. (weeks of hard work)
Then learn all of this (more weeks of hard work)
http://developer.android.com/guide/index.html
Then learn all of this (more weeks of hardwork)
http://www.freeyourandroid.com/index.php
Finally get involved with Cyanogenmod
Becoming a dev is a huge commitment, it is why professional devs are paid so well.
Sent from my SPH-D710 using Tapatalk
kingsway8605 said:
I Becoming a dev is a huge commitment, it is why professional devs are paid so well.
Sent from my SPH-D710 using Tapatalk
Click to expand...
Click to collapse
I'm just curious, how much do devs usually make and who actually pays them?
Sent from my SPH-D710 using Tapatalk
Sn1per 117 said:
I'm just curious, how much do devs usually make and who actually pays them?
Sent from my SPH-D710 using Tapatalk
Click to expand...
Click to collapse
I said professional devs. The hobbyist devs on xda usually are doing it because they enjoy doing it and picked up the skills over the years. But it isn't any easier and that is why the behavior on the forums sometimes annoys them. As far as professional devs who work for a company like Samsung, they make between 50,000-100,000 a year.
As far as independent professional devs, Paper camera has sold over 1,000,000 apks at 2 dollars a pop, do the math.
Sent from my SPH-D710 using Tapatalk
I say make a couple of apps first and learn how Android works. Then move to themeing, then make kernels, then roms
Sent from my Epicâ„¢ 4G Touch
kingsway8605 said:
I said professional devs. The hobbyist devs on xda usually are doing it because they enjoy doing it and picked up the skills over the years. But it isn't any easier and that is why the behavior on the forums sometimes annoys them. As far as professional devs who work for a company like Samsung, they make between 50,000-100,000 a year.
As far as independent professional devs, Paper camera has sold over 1,000,000 apks at 2 dollars a pop, do the math.
Sent from my SPH-D710 using Tapatalk
Click to expand...
Click to collapse
Devs dont get 100% of their sales
Sent from my Epicâ„¢ 4G Touch
Here's where I learned my skills, this determines on what you're trying to develop. Most roms here, with the exception of source builds don't require much actual programming experience since they are closed source, primarily they have small tweaks like de-odexing, XML mods, etc.
Hands-On | 90% - 90% of my skills have come from hands-on experience and learning as I go along. For example, say I'm writing an app for the very first time. (Don't start with an app unless you've practiced with the platforms language first) As I went along on my first app I learned an incredible amount about android developing by reading developer.android.com and SO as I went along and came across something I wasn't sure about. Ditto kernel development, years ago I started with no knowledge and then bam I'm half a pro . Also, I knew nothing about ASP.NET/MVC/C# about a month ago, now it's kinda fluid to me.
School(Computer Science) | 8% - Yeah, it costs all that money for 8% or less. There can be some unique challenges in a software program, but almost everything you do in school is either so off the wall simple or has no real world application. I also think they spend too much time teaching by the syntax of the language, when really you should group them. Syntax is *mostly* trivial, it's better to group languages. Example: learn the Object Oriented Style (Perl, PHP, C++, Java, C#) which should give you a decent foundation in all those languages. Then learn the Procedure-Oriented Style (C, PHP, Perl, Cobol, BASIC (eww)). Then learn the rising in popularity Functional-Style (F#, SQL (mostly, this ones an exception since you often won't write many SQL scripts save for basic queries), Erlang, Haskell, C#). Notice: I listed some languages in multiple categories as the styles of programming are concepts, and some languages support either concept.
Co-Workers | 2% - Sometimes you learn by asking a co-worker or another developer. It's not how I did it primarily, but I know others who work best and learn best working in a team.
So to recap:
If you're trying to learn software programming itself I suggest starting with common scripting languages which are very easy to learn (HTML, XML (this will help for android), PHP). Then move on to some OOP languages (Java (Android*), C++). Then if you plan on working with kernel source code you should work with C and familiarize yourself with the procedure oriented style. Java is by far the easiest first language to learn OOP because of the wide-range of libraries available (to do almost anything) and the JRE, which gives you a nice garbage collector so you don't have the worry of memory management and freeing objects manually like you do in C/C++, etc.
If you just want to bake a rom with minor adjustments or a closed-source rom, I suggest you learn how to create themes first, as many of those concepts will help in baking a rom. And if you have questions this is a development community last time I checked, although sometimes it doesn't seem like it. So ask questions, ask other developers (I used to get questions ), ask on the board (if you follow the rules), ask on StackOverflow, etc. Don't be a nuisance to other developers though, I had someone that constantly blew up my phone nonstop all hours of the day asking silly silly questions. I don't mind questions, but i'd be spending time with my GF and my phone would explode with 20 questions that I already answered 20 times each
Also, some books may not be bad if you have absolutely no idea about programming whatsoever. But nowadays, you can find anything in a book on the internet. The benefits of a book is they include all their source code (usually) and can motivate you more since they give you projects and challenges. I had one Java book, and it drove me crazy because nothing was standardized. Instead of using the Java HashMap methods, or the Java Stack methods they wrote their own APIs for everything it drove me crazy :O
bbedward said:
Here's where I learned my skills, this determines on what you're trying to develop. Most roms here, with the exception of source builds don't require much actual programming experience since they are closed source, primarily they have small tweaks like de-odexing, XML mods, etc.
Hands-On | 90% - 90% of my skills have come from hands-on experience and learning as I go along. For example, say I'm writing an app for the very first time. (Don't start with an app unless you've practiced with the platforms language first) As I went along on my first app I learned an incredible amount about android developing by reading developer.android.com and SO as I went along and came across something I wasn't sure about. Ditto kernel development, years ago I started with no knowledge and then bam I'm half a pro . Also, I knew nothing about ASP.NET/MVC/C# about a month ago, now it's kinda fluid to me.
School(Computer Science) | 8% - Yeah, it costs all that money for 8% or less. There can be some unique challenges in a software program, but almost everything you do in school is either so off the wall simple or has no real world application. I also think they spend too much time teaching by the syntax of the language, when really you should group them. Syntax is *mostly* trivial, it's better to group languages. Example: learn the Object Oriented Style (Perl, PHP, C++, Java, C#) which should give you a decent foundation in all those languages. Then learn the Procedure-Oriented Style (C, PHP, Perl, Cobol, BASIC (eww)). Then learn the rising in popularity Functional-Style (F#, SQL (mostly, this ones an exception since you often won't write many SQL scripts save for basic queries), Erlang, Haskell, C#). Notice: I listed some languages in multiple categories as the styles of programming are concepts, and some languages support either concept.
Co-Workers | 2% - Sometimes you learn by asking a co-worker or another developer. It's not how I did it primarily, but I know others who work best and learn best working in a team.
So to recap:
If you're trying to learn software programming itself I suggest starting with common scripting languages which are very easy to learn (HTML, XML (this will help for android), PHP). Then move on to some OOP languages (Java (Android*), C++). Then if you plan on working with kernel source code you should work with C and familiarize yourself with the procedure oriented style. Java is by far the easiest first language to learn OOP because of the wide-range of libraries available (to do almost anything) and the JRE, which gives you a nice garbage collector so you don't have the worry of memory management and freeing objects manually like you do in C/C++, etc.
If you just want to bake a rom with minor adjustments or a closed-source rom, I suggest you learn how to create themes first, as many of those concepts will help in baking a rom. And if you have questions this is a development community last time I checked, although sometimes it doesn't seem like it. So ask questions, ask other developers (I used to get questions ), ask on the board (if you follow the rules), ask on StackOverflow, etc. Don't be a nuisance to other developers though, I had someone that constantly blew up my phone nonstop all hours of the day asking silly silly questions. I don't mind questions, but i'd be spending time with my GF and my phone would explode with 20 questions that I already answered 20 times each
Also, some books may not be bad if you have absolutely no idea about programming whatsoever. But nowadays, you can find anything in a book on the internet. The benefits of a book is they include all their source code (usually) and can motivate you more since they give you projects and challenges. I had one Java book, and it drove me crazy because nothing was standardized. Instead of using the Java HashMap methods, or the Java Stack methods they wrote their own APIs for everything it drove me crazy :O
Click to expand...
Click to collapse
My school must have a great compsci program because they focus on good programming styles and not syntax. There is no reason to start with any language besides java if your goal is to develop Android. And while I agree with your learning as you go approach, it would be a mistake and overwhelming imo for someone to jump into Android development without having a basic understanding of Linux, java, and Android. My advice given was for helping op to become an Android dev, not someone who posts roms. They are not always the same thing.
Sent from my SPH-D710 using Tapatalk
bbedward said:
Here's where I learned my skills, this determines on what you're trying to develop. Most roms here, with the exception of source builds don't require much actual programming experience since they are closed source, primarily they have small tweaks like de-odexing, XML mods, etc.
Hands-On | 90% - 90% of my skills have come from hands-on experience and learning as I go along. For example, say I'm writing an app for the very first time. (Don't start with an app unless you've practiced with the platforms language first) As I went along on my first app I learned an incredible amount about android developing by reading developer.android.com and SO as I went along and came across something I wasn't sure about. Ditto kernel development, years ago I started with no knowledge and then bam I'm half a pro . Also, I knew nothing about ASP.NET/MVC/C# about a month ago, now it's kinda fluid to me.
School(Computer Science) | 8% - Yeah, it costs all that money for 8% or less. There can be some unique challenges in a software program, but almost everything you do in school is either so off the wall simple or has no real world application. I also think they spend too much time teaching by the syntax of the language, when really you should group them. Syntax is *mostly* trivial, it's better to group languages. Example: learn the Object Oriented Style (Perl, PHP, C++, Java, C#) which should give you a decent foundation in all those languages. Then learn the Procedure-Oriented Style (C, PHP, Perl, Cobol, BASIC (eww)). Then learn the rising in popularity Functional-Style (F#, SQL (mostly, this ones an exception since you often won't write many SQL scripts save for basic queries), Erlang, Haskell, C#). Notice: I listed some languages in multiple categories as the styles of programming are concepts, and some languages support either concept.
Co-Workers | 2% - Sometimes you learn by asking a co-worker or another developer. It's not how I did it primarily, but I know others who work best and learn best working in a team.
So to recap:
If you're trying to learn software programming itself I suggest starting with common scripting languages which are very easy to learn (HTML, XML (this will help for android), PHP). Then move on to some OOP languages (Java (Android*), C++). Then if you plan on working with kernel source code you should work with C and familiarize yourself with the procedure oriented style. Java is by far the easiest first language to learn OOP because of the wide-range of libraries available (to do almost anything) and the JRE, which gives you a nice garbage collector so you don't have the worry of memory management and freeing objects manually like you do in C/C++, etc.
If you just want to bake a rom with minor adjustments or a closed-source rom, I suggest you learn how to create themes first, as many of those concepts will help in baking a rom. And if you have questions this is a development community last time I checked, although sometimes it doesn't seem like it. So ask questions, ask other developers (I used to get questions ), ask on the board (if you follow the rules), ask on StackOverflow, etc. Don't be a nuisance to other developers though, I had someone that constantly blew up my phone nonstop all hours of the day asking silly silly questions. I don't mind questions, but i'd be spending time with my GF and my phone would explode with 20 questions that I already answered 20 times each
Also, some books may not be bad if you have absolutely no idea about programming whatsoever. But nowadays, you can find anything in a book on the internet. The benefits of a book is they include all their source code (usually) and can motivate you more since they give you projects and challenges. I had one Java book, and it drove me crazy because nothing was standardized. Instead of using the Java HashMap methods, or the Java Stack methods they wrote their own APIs for everything it drove me crazy :O
Click to expand...
Click to collapse
This is great info thank you. I have linux experience and I have made a couple of hello world apps but nothing extensive. It looks like maybe i should start with a little theming or something like that. I know html and can read through XML. I think i will try and find some Java tutorials or books to get me going there. Know of any guides on theme's?
kingsway8605 said:
My school must have a great compsci program because they focus on good programming styles and not syntax. There is no reason to start with any language besides java if your goal is to develop Android. And while I agree with your learning as you go approach, it would be a mistake and overwhelming imo for someone to jump into Android development without having a basic understanding of Linux, java, and Android. My advice given was for helping op to become an Android dev, not someone who posts roms. They are not always the same thing.
Sent from my SPH-D710 using Tapatalk
Click to expand...
Click to collapse
My schools good too I'm not saying its all syntax but its a lot of write your code readable in the professors style. I've learned more in 3 months on the job than 2 years of school. I've learned way more from self teaching tho.
And for app development Linux knowledge isn't really necessary since you can develop android apps on any platform, but Java and OOP styles is necessary knowledge.
Sent from my SPH-D710 using Tapatalk
bdpatch said:
This is great info thank you. I have linux experience and I have made a couple of hello world apps but nothing extensive. It looks like maybe i should start with a little theming or something like that. I know html and can read through XML. I think i will try and find some Java tutorials or books to get me going there. Know of any guides on theme's?
Click to expand...
Click to collapse
What you should start with greatly varies with what you want to develop
Sent from my SPH-D710 using Tapatalk
bdpatch said:
I was wondering what resources are out there to become a DEV and make my own ROM's. I have googled it a little bit and not really found anything worth while so far. I did run across a good book but its not going to be published for another 2 months. Does anyone know of any tutorials? Books? How to guides?
Click to expand...
Click to collapse
Read and follow this information from Cyanogen himself
http://forum.xda-developers.com/showthread.php?t=667298
jerdog said:
Read and follow this information from Cyanogen himself
http://forum.xda-developers.com/showthread.php?t=667298
Click to expand...
Click to collapse
Thank you for the link. I got lots of stuff to start reading through now. I also found this book: http://www.barnesandnoble.com/w/xda...7854?ean=9781119951384&itm=1&usri=android+rom
It should hopefully be a good one as well when its published.
bdpatch said:
Thank you for the link. I got lots of stuff to start reading through now. I also found this book: http://www.barnesandnoble.com/w/xda...7854?ean=9781119951384&itm=1&usri=android+rom
It should hopefully be a good one as well when its published.
Click to expand...
Click to collapse
It will be - I know the guys who've put it together.

Categories

Resources