UIX/Splash/Iris Framework Information - Windows Phone 7 Development and Hacking

I have been doing hours and hours of research to understand and reverse the UIX framework that Windows Phone native apps use. This thread will eventually become an organized source of information about the entire process.
I have a ton of information already that doesn't seem to exist yet on the internet, so I'm assuming this information will be new to almost everyone. However, right now it's very scattered so I will not be posting it here until more progress is made.
What's possible in the future:
Visual changes and small functional changes to existing UIX for a native app​Creating native applications from scratch​
What's not possible in the future:
Editing the core functionality of existing UIX native apps, like the Start Menu.​
The reason for these possibilities and limitations is best compared to XAML/C++ applications. The UIX is like XAML, which we can edit, but the core functionality is in C++.
Here is a full UIX file in its XML state from Zune: http://pastebin.com/yRwXmNcL
This will help understand how the markup language works.
From my research, I have enough evidence to support that the compiled UIX binaries are able to be decompiled back to its original XML state.
I'm not sure how long it will be until I have enough info for this thread, but I want this information to be public for everyone to utilize. With that said, anyone who wants know more about what I've learned can PM me here, or contact me on Skype at "[email protected]" and I will explain everything that I have learned so far.

Reserved

Reserved #2

Related

[SENSE][WM][WIN] Manila & Windows Mobile Developer Interest Poll?

I'm trying to gauge interest in developing manila/sense tabs, I'm looking for:
1. people interested in working on the facebook tab
2. people who want to make other tabs
3. people who are app developers who want to tie into tabs
4. we also need some people comfortable doing window apps
(I think we need help getting started with the Manila Kitchen GUI tools - currently command-line). There is plenty of guys who have worked on the tools and know tons about manila, just need a framework in which to tie into.
Please state if you are expert or beginner or willing to learn.
I think in most areas, support can be given to most to get them started (even if it's not your area of expertise) and will probably prove a good learning experience.
Now, just need to work out how to make this a poll...
OK, you can select more than one option at time:
- Expert can be considered Expert/Intermediate skill, i.e. you've made something and it works quite well.
- Beginner would be someone who has done small tweeks or done simple programs.
Ahh, forgot window app developers, in this case, register your interest (if you are), in the TouchFLO/Manila/SenseUI social group (a great bunch of guys who helped me from knowing nothing about sense):
Project: Manila GUI Kitchen Environment.
http://forum.xda-developers.com/group.php?do=discuss&group=&discussionid=223
Links are not working for me :/
I'd be interested in working on a Phone tab. something that included not only a call history, but some dynamic icons that showed (at the very least):
Missed calls.
Voice mail.
SMS/MMS
Email
It's amazing to me that this was on earlier versions of Manila/TF3D but isn't on the newer versions. This entire concept was supposed to be designed for a pda/PHONE converged device, but the phone side of it has been weakened on every upgrade.
AdamiX said:
Links are not working for me :/
Click to expand...
Click to collapse
I'll ask the group admin about it, perhaps you have to join as a member first...
http://forum.xda-developers.com/group.php?groupid=131
Trident said:
I'd be interested in working on a Phone tab.
Click to expand...
Click to collapse
I can point you in the right direction if you need it, my method for working with manila at the moment, is decompile everything and then use a good search tool to find the kind of code I need. Seems to work quite well and you can find some interesting functions/features, I've also found using the registry is quite handy for experimenting since you can test out calling different apps with different arguments and also jumps to sense pages (which are internal URLs). Also it can give you a view of values which are being used internally.
So far getting interesting results on the poll!
Looks like a good mix of people which is great!
1. Those interested in taking the facebook tab further, I'm just working on a few bits at the moment for it (trying to tie in the last bits of HTC function), but will happily pass it on when people want me to. [I released it much sooner than I planned, but felt mean waiting any longer]
2. Those interested in learning about manila then have a look through my tutorials and that will hopefully get you started (I was a total beginner too when I started them). Please let me know if there are bits missing or bits which don't make sense etc, it's aimed at people who have done a little programming or at least get the general idea. If it's not clear enough then an entry level tutorial would be welcome (I've avoided too much click here, type this type detail because there is too much to explain in one go).
(leave feedback on the tutorial thread)
3. Those interested in developing manila and wm apps for using tabs, I'm hoping to build a "Custom Manila Interface Tab" which will ultimately provide an API type interface for apps. Will probably need a lot of work, so once I've done a basic proof of the concept, which will be very simple and populated via registry keys (i.e. simple list display which can be populated via a normal app) I will then open it up for group development.
4. Those interested in WM app development, hopefully with the new tab it will be easy to get started with some basic ideas and try them out. As the new tab (or it can be used as a sub-page) develops we will need to know what kinds of things we want to display.
i.e. for the facebook tab I can see this being used as a simple way for a external app to list notifications, comments and all kinds of information.
5. Windows application development, let me know if you can get on the group, I really hope that once given a framework a GUI can be put together. The mode9Editor is an excellent example (I think the author is on the group) and the CMD line kitchen is another amazing tool which brought together all the other fantastic tools (again I think most the original authors are there). Given a good start with a solid base, the GUI could become a very powerful tool!
-------
Developing wm is much easier than working with the manila files, and even HTC tend to tie into dlls/exes quite often to do the leg work, but it doesn't appear to be consistent (each module does things slightly differently) so a direct API would be a massive task. So hopefully an interface tab will bridge the gap, it'll probably provide a good point of reference for useful manila functions too. With the addition of a good GUI editor, I'll look forward to having fun making some really amazing apps (no not a fart selector app...).
Great thread meltwater, you may end up being the driving force of a whole new Manila experience
smeddy said:
Great thread meltwater, you may end up being the driving force of a whole new Manila experience
Click to expand...
Click to collapse
No, the guys before me have been that (would have been no hope without the tools), but hopefully we've got some interesting ideas on the table!
Excellent results on the poll.
Here is an update of what's currently happening:
1. Facebook Tab
I'm currently continuing development on the tab myself, since it is still providing me with useful knowledge on working with manila. It serves as a good driving force for me to try out more stuff.
[MOD][SENSE2.5TAB] Basic Facebook Tab - Developer Thread
http://forum.xda-developers.com/showthread.php?t=663494
2. Custom Manila Interface Tab
I should be able to start work on this once I've learnt enough from doing the changes on the facebook tab. Currently my understanding of manila isn't quite good enough to tackle this yet, it's a big job particularly when the manila code isn't that easy to work with when there is no api.
The concept here is to make a basic tab where the content can be defined by a normal windows mobile app. This should allow many more tabs to be created, without specialist knowledge of manila code.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Something similar to this, but populated by an external app.
3. Manila/Sense Kitchen GUI
The group still needs someone to help kick off the project with some help in building the basic framework for the application. I really hope that this can be achieved, moving the whole process into a graphical app will really help with dealing with the difficult editing of the manila files particularly when defining the graphical components.
Please feel free to give feedback on what you think about my plans. Also if you want to get started on some simple(ish) stuff, there's bits in my tutorials etc.
Ok, trying to get a working development environment for windows mobile, is quite difficult if you don't have a full copy of Visual Studio. For now I will use a trial version, but after I'll post/link to tutorials on how to do it without Visual Studio and some initial steps for Windows Mobile development.
http://www.codeproject.com/KB/mobile/WiMoSansVS.aspx Is a good starting point...
Hi everyone,
Thanks for filling in the poll. There are plenty on here who would like to know how to get started etc with manila, windows mobile development etc.
Short of writing a "how to" which covers everything, which I don't have time to do at the moment, what do people need/want to know to get them started???
This thread can be a simple Q&A section if people need help with the initial steps...
I would love to help but I have too much going on for now :/
This thread may not get noticed but since I started it to talk about and get developer interests I will post here anyway.
Since I've released the latest version of the facebook tab I have started work on my 2nd Tab Project. (Still developing the facebook tab v2.0 too).
The new tab will work along the same lines as Custom Manila Interface Tab concept but for now I have a specific application in mind. Hopefully we can keep this one open and the basis of the tab can be extended and reused to form other tabs working on the same principles.
So what do I need?
Well I have the very basics of the tab working, so I need some windows mobile developers to assist with creating a supporting app which will feed the data to the tab. They will need to handle xml data and potentially HTTP GET requests (I guess), we can go as fast or as slow with it depending on the developer(s) (I've got some ideas on how to start off slowly just like I did with the facebook tab, so beginners would be able to do it, they just need time and willingness to learn). I might start writing it myself but my time is limited and it would be nice to have this tab open to everyone (unfortunately I get too attached to my code/ideas when I've been working on them too long so want to avoid getting in too deep with that part - that is what happened with the FbTab).
What is it?
Not quite ready to announce what the tab will be but I've carefully chosen a good project.
What now?
PM or post here and I'll get back to you.
I'm not sure yet how this will work, but probably create a google code project so that anyone can contribute. Will create a developer thread for the project and once things are up and running a release thread to handle the releases/support etc.
Ideally, this project will be open as possible and allow new developers to have a go. There is plenty which can be done, by all ranges of skill levels. It would be excellent to have a wiki attached to the project which explains how it is put together etc, would be great to provide a stepping stone for future developers to get working with windows mobile and sense.
Also need suggestions on where to host the project, GoogleCode, CodePlex etc require change management software which I'd like to avoid. Perhaps something like 4shared maybe or dropbox?
wow
wow very good.
New to Winmo developement, but willing to seriously learn
meltwater,
I am new to the Winmo developement, but am taking it up in a serious manner. I am willing to take on new tasks with some support. I have the full version of Visual Studio 2010 and can allocate alot of time currently to any projects that you are looking for. Again, I would need to have some support, or be pointed in the right direction, but am very willing to assist. I will do what research I can and ramp up to begin as soon as possible.
One note..I am currently enrolled in school for programming, part of the cloud of programmers that work with Microsoft through VS 2010, and am working to become more proficiant with the WinMo SDK.
Can I help?
Mxdadevolper said:
meltwater,
I am new to the Winmo developement, but am taking it up in a serious manner. I am willing to take on new tasks with some support. I have the full version of Visual Studio 2010 and can allocate alot of time currently to any projects that you are looking for. Again, I would need to have some support, or be pointed in the right direction, but am very willing to assist. I will do what research I can and ramp up to begin as soon as possible.
One note..I am currently enrolled in school for programming, part of the cloud of programmers that work with Microsoft through VS 2010, and am working to become more proficiant with the WinMo SDK.
Can I help?
Click to expand...
Click to collapse
That sounds perfect, just the sort of thing I'm after.
I'm no where near being expert anyway, as I've mentioned a few times, the facebook tab is my 2nd windows mobile app, the 1st being "hello worlde", however I've learned tons doing it and I think it's not too bad (a lot of it is still unreleased). I have a long background in embedded software though.
One thing, visual studio 2010 is no good for windows mobile development, it only supports windows phone 7 not windows mobile (MS killing WM dev much?). Fortunately you might be able to get a FREE student licence via MS Dreamspark, although sounds like they might be able to provide what you need. The work I am doing is in C#.
I put together a little of the support code for the tab last night and the concept appears to work fine. I'll start up a project thread soon, still trying to work out what is the best place to hold/manage the code, want to avoid change management systems:
I don't want to install extra software to handle it
It creates an extra barrier to people having a try
This means codeplex, sourceforge and gogglecode aren't suitable. At the moment 4shared seems like a good choice (simple online storage area) or DropBox which I also use (which could be easiest).
Opened up the developer thread, project details will come soon.
meltwater said:
That sounds perfect, just the sort of thing I'm after.
I'm no where near being expert anyway, as I've mentioned a few times, the facebook tab is my 2nd windows mobile app, the 1st being "hello worlde", however I've learned tons doing it and I think it's not too bad (a lot of it is still unreleased). I have a long background in embedded software though.
One thing, visual studio 2010 is no good for windows mobile development, it only supports windows phone 7 not windows mobile (MS killing WM dev much?). Fortunately you might be able to get a FREE student licence via MS Dreamspark, although sounds like they might be able to provide what you need. The work I am doing is in C#.
I put together a little of the support code for the tab last night and the concept appears to work fine. I'll start up a project thread soon, still trying to work out what is the best place to hold/manage the code, want to avoid change management systems:
I don't want to install extra software to handle it
It creates an extra barrier to people having a try
This means codeplex, sourceforge and gogglecode aren't suitable. At the moment 4shared seems like a good choice (simple online storage area) or DropBox which I also use (which could be easiest).
Opened up the developer thread, project details will come soon.
Click to expand...
Click to collapse
Sounds Great!! I'll be looking for the thread and details. I also have been working in C#, so I think that we'll learn alot together.
Count me in... can supplement SenseSDK if needed!
Ed
eboelzner said:
Count me in... can supplement SenseSDK if needed!
Ed
Click to expand...
Click to collapse
Hopefully a lot of the new tab will be within sense itself with a hidden support app to drive it, although later on it will probably use the SDK for configuring and managing things. Although that is only a rough idea at the moment. (will send you some details - will update the dev thread tomorrow and announce the project).
However, the facebook tab v2.0 is attempting to make extensive use of your sense SDK and greenhacks extended controls. I've currently pushed my ability to the limit with the interface though, hopefully when greenhack releases the latest extended controls I can fill in some of the missing holes. Still experimenting with the GUI aspects and possible concepts for how it should work. Will have think about the GUI again, there are a few areas which I've not quite been able to do what I was aiming for, which the Sense SDK might be modded to achieve.
I'm kinda aware though that a lot of the effort to implement the features for the facebook tab v2.0 will already be done by the Xda Facebook app being produced (so eventually we may tie it in to the tab after v2.0). The new project will hopefully help me expand what I can do with sense and allow better integration of apps.
New RSS Tab project is GO GO GO
[MOD][SENSE2.5TAB] RSSTab - Developer Thread
Thread has all the files ready to go, just not sure what people are waiting for...is it that scary?
Really?
meltwater said:
Also need suggestions on where to host the project, GoogleCode, CodePlex etc require change management software which I'd like to avoid. Perhaps something like 4shared maybe or dropbox?
Click to expand...
Click to collapse
Why on earth would you want to avoid Source-code Version Control? SVN, GIT, and even CVS are an absolute God-send to any development group. i can see one or two pro's to avoiding it if you're the only developer on the team, but any more than 1 dev contributing code to a project turns it into a nightmare without a SVC ...
phalacee said:
Why on earth would you want to avoid Source-code Version Control? SVN, GIT, and even CVS are an absolute God-send to any development group. i can see one or two pro's to avoiding it if you're the only developer on the team, but any more than 1 dev contributing code to a project turns it into a nightmare without a SVC ...
Click to expand...
Click to collapse
Well can't that be handled by a decent web-based on which does it on the server side?
I know you are totally right, version control is very important (I've used many on a professional basis), but do I really need to force all the developers (and myself) to install full SVN programs?
I was hoping there would be a web based version control system which allows you to check in/out files purely using a web browser.
Any suggestions would be appreciated...I've only used closed corporate solutions before so new to open-source.
CVS idea
Guys,
Can we use CodeBeamer for something like this? From what I'm reading this might allow us the versioning control. It could be downloaded for free for up to 6 users.
Any thoughts?
Here's the link for the version that I was thinking of.
http://www.intland.com/products/cb-mr/overview.html

[DEV] [REQ] C++, rewrite existing code

First I would like to thank the whole forum (with few exceptions that I'd like to not mention here) for the past 2,5 years, which have been very educating for me regarding Windows Mobile as a system. During that whole time I have searched for the perfect simple-to-use, lightweight app for storing and retrieving a grocery list, yet unfortunately I have had to come to the conclusion that it does not exist to this date. There are some existing apps but these are either not simple to use or do not accomplish the simple task at all, or they are too heavy (requiring additionally the .NET framework to be installed for example, etc.).
The idea for the simple software is that one has a changeable groups and items of groceries, from which they can select the already saved ones needed at that shopping day (e.g. during a discussion with girlfriend), and later when in shop they can just check the ones they have already put into basket. I would like to see the person who will argue that it does not easily beat archaic mode of storing information, a.k.a. paper and pen.
I have found an app which, with some relatively small amount of effort can be rewritten to accomplish that task, this software is iContact AE. As far as I understand, there is judicially no problem using the source code from iContact AE as long as following the license restrictions (correct me please if I am wrong). Why AE? Just a selection based on the fact that AE has the most appealing interface and most settings. Of course, this could be a point of discussion, but so far it seems like the best choice.
CAB - http://icontactae.codeplex.com/releases/view/28951
Source - http://icontactae.codeplex.com/SourceControl/list/changesets
I created a possible, chronological tasklist in order to get from iContact AE to the shopping app, whatever it will be called (name suggestions also welcome in due time). Also, I already have a pretty clear vision about
Discuss the usability and feasibility of the selected software / it's source code and it's alternatives (as far as I remember there was the original iContact and some other derivate version).
[*]Create, discuss and review static prototypes of the interface (basically screenshots of each view).
[*]List the requirements to be implemented (or removed).
[*]Code in / remove code according the list from previous task.
[*]Create skin and graphics.
[*]Clean up rest of code, remove unnecessary parts of it (to make it more light).
[*]Test and review changes.
I can either take lead, perform or participate actively in the tasks that are listed green. I only need a competent C++ coder who can help and thinks this is a great idea.
The changes needed to the existing source code do not seem to be much at first glance, but of course as I cannot code in C++, I could be wrong. I just looked at the parts of code where to change the tabs and queries to storage files.
So there, got it off my chest. Any C++ gurus missing a simple, convenient grocery app?
OK, I will put this in another way. I will personally contribute $50 (via PayPal or if EU country, via transfer) to the coder - provided that the end result is according to the requirements, which we will agree forehand. If anyone wants to join in with contribution, You are more than welcome.
aiiro said:
OK, I will put this in another way. I will personally contribute $50 (via PayPal or if EU country, via transfer) to the coder - provided that the end result is according to the requirements, which we will agree forehand. If anyone wants to join in with contribution, You are more than welcome.
Click to expand...
Click to collapse
If I had money I to would offer some.
It's no wunder WinMo is falling behind no one wants to create apps even when offered a straight cash deal.
Amen to that. I was actually reading this and took a good hour of researching to see just how hard it might be and how time-consuming it might be. I would have loved to take this on...but alas, It would split me way too much. I am already working on my FFP_LS Pro 2.5 Improvements (Major Major improvements...I am practically re-writing the app), I am starting work on a game I plan to release (Its a rather popular game I have yet to find for WIndows Mobile), and I already volunteered to work on the Boggle Clone for WinMo ... so I am already pretty split as it is. heh...if I find free time, and nobody has taken this on, I will probably come back and make this my next project
Sorry though...I do hope some developer comes around to assist!
Thanks for Your support. I thought that I don't need to subscribe to my own threads in order to get a notification if a new post is made, but I was wrong. I certainly didn't get one for Your post. So, sorry for the late reply. I will subscribe to my own thread now

[CODE] Blockclock - Free Code Giveaway - A Metro Style Alarm Clock for WM6+

A lot of people I spoke to whilst leaning programming didn't want to help with the Visual Basic side of things and started moaning about me not using C# - but that was my choice to make. So I make this post with similar minded people in mind - maybe there is someone else out there that doesn't want to learn C# to code apps?!?
A while back I started learning about Windows Mobile development but I left it a bit late in the OS's lifecycle and sadly lost my motivation for producing apps for it.
Now that I have left my Windows Mobile development behind I am willing to contribute my, slightly messy but, working code to anyone that might find a use for it.
I am willing to donate my code to the community in the hope someone will finish it off - if they can decypher my workings - or make use of it in their own projects.
It's an Alarm Clock in the Metro UI style (see attached screenshots) which wakes the device at the set time and sounds an alarm and is written in VB and is for Windows Mobile 6 and above. Most of the functionality is already in place.
It requires the Smart Device Framework libraries to be installed on the PC used to code it.
Working Features:
One working alarm which wakes the device when required
Snooze function
Customisable colours - working selector screen with 46 colours to choose (you can even use a custom hex colour if the XML settings file is manually edited)
Selection of different date formats
Rotation support for WVGA devices works...sort of but could probably be tweaked.
Things left to finish:
Add additional alarm(s)
Allow naming of alarms
Put dialogue in place to select a sound for the alarm(s)
Put an 'if -> then' statement in place in the alarm sounding procedure to vibrate the device if vibration is enabled
Graphics are minimal to reduce on memory usage but I think it looks quite good...even if I do say so myself (Please see the screenshots attached)
The program was never finished due to changing my main OS on my phone from Windows Mobile to WP7 and Android and I don't think I'll be returning to Windows Mobile 6.5 development.
The following imports are required:
Imports System.IO
Imports System.Threading
Imports System.Media
Imports OpenNETCF
Imports OpenNETCF.WindowsCE
Imports OpenNETCF.AppSettings
...and the following references in the project references:
OpenNETCF.AppSettings
OptnNETCF.WindowsCE
The app creates an XML file for the settings which is stored in the program folder and in its current state it works for 1 alarm with one alarm tone ('alarm.wav' in the resources folder).
Any questions...feel free to ask. There is one menu template which is configured in various procs to create the menus for alarms and preferences so it can look more complicated than it actually is in the code.
Glad to see some people may have found this useful! Keep me updated with any developments, it'd be interesting to see if this goes anywhere....I ask for no credit.
Hi thank you for the source code. I prefer C# syntax wise but they share the same runtime environment and get compiled into the same MSIL language so in theory they are the same. Just some things are done differently. Cheers again.
sb.oddworld said:
Hi thank you for the source code. I prefer C# syntax wise but they share the same runtime environment and get compiled into the same MSIL language so in theory they are the same. Just some things are done differently. Cheers again.
Click to expand...
Click to collapse
No problem at all. Some of the form layouts can be a little confusing so if you need a hand just yell. Glad that it might be of use to someone.
Thanks welki1979 being a non C programmer I fully appreciate how hard it is to find suitable code to get examples from. Even if it turns out to be totally useless it is still a very nice gesture.
Ok got it up and running (didn't need the Smart Device Framework listed above as I already had Microsoft .NET Compact Frameworkwork 3.5 installed).
First impressions... It's really cool (especially the random item close), haven't had much chance to go through the code yet as it threw up an exception when I first ran it that needed to be sorted out first.
What I was hoping to see was the application being triggered from one of the menus items but instead it just fires up on load.
I was hoping to learn how to code it so it could be fired off the start menu icons, but I can't seem to work out how those applications are triggered.
Not sure what value I can add to the program, but given enough time to learn a bit more about mobile coding I might be able to add something.

[Q] WP7 and native for beginner

Hello everybody,
I got a WP7 Samsung Focus and I want to port my old application to this device and join native forces for WP7
My plan is simple: I'll convert my app into a dll, rewrite new gui in C# (or whatever the way to do it on WP7). I saw multiple posts about calling native code (original from Cris Walsh: http://goo.gl/2Tjks). Then I saw a few posts mentioning that it's impossible etc etc.
So, a few questions:
0) can I do it for my app (I don't need marketplace exams etc, I don't care for that)? I know that some WinAPI could be unavailable/broken, all I ask at this point if it's possible to load and run native dll without changing or re-flashing ROM.
1) ms wants 100$ out of my pocket to be able to deploy to my own device (WTF?!). What can I do to deploy to my phone without paying the crooks? (VS2010 tell me to register there and registration askes for 100$).
2) Is there a sample project I could D/L and run, I have zero experience in C# and I have no idea how to load and call native DLL from managed code in WP7? All these half broken samples are totally useless to me, I simply wanted to working HelloWorld app that loads and runs simple dll.
thanks
0) Yes, what you describe is possible. There are lots of limits, though - WP7 applications have very low permissions, and calling native code doesn't fix that. Unless you need to edit something outside the app's own iolated storage, though, you're probably OK.
1) Aside from the official marketplace account ($100), there are a few options:
a) if you've got an LG phone, they come with a built-in registry editor that can be used to dev-unlock your phone. I forget the exact key you need, though.
b) if you've got a student email address (ends in .edu) you can try registering through DreamSpark. This is free.
c) if you don't mind rolling back to pre-NoDo (7004 or 7008) you can use ChevronWP7 Unlock (instructions available on this forum). If you don't have a restore point that far back you can flash an official ROM for that version.
d) if you don't mind waiting, ChevronWP7 Labs will be available at some point (no ETA that I've seen, but it's been talked about for months) and will provide dev-unlock (but not marketplace account) for a nominal fee.
2) There are lots of apps distributed with source, and most of them will use some native code. You could do a search on this forum for subject lines including the tag "[SOURCE]" and find several (I release source for all my apps). However, I suspect what you'd find most useful is Heathcliff74's guide to WP7 apps that use native code, which is on this forum at http://forum.xda-developers.com/showthread.php?t=1299134. It includes step-by-step instructions.
Hope that helps! I look forward to seeing your app. Also, don't hesitate to ask for help with the actual development; I suck at GUIs and Silverlight but am fairly proficient at C# if you need somebody who knows that language, for example.
There is an ETA for the new ChevronWP7 unlocker:only a few weeks away from launch!
Hi GoodDayToDie
GoodDayToDie said:
0) Yes, what you describe is possible. There are lots of limits, though - WP7 applications have very low permissions, and calling native code doesn't fix that. Unless you need to edit something outside the app's own iolated storage, though, you're probably OK.
Click to expand...
Click to collapse
At this point I want to make a DLL from my simple app and call a few functions that interact with filesystem and network. FS is needed only for simple stuff (loading config file etc) from installation folder and creating some temporary files for local storage. Network is tcp/udp, I guess network should be available.
GoodDayToDie said:
1) Aside from the official marketplace account ($100), there are a few options:
...
Click to expand...
Click to collapse
I did some search, it seem that I've done that part. Chevron dev unlock was pulled out from their site, but the old version remains scattered all over the board. There is a good thread a good thread on how to do it. It happens that my phone is 7004. Where can I get old ROM in case if something goes bad and I need to re-flash? Is it easy, am I risking to brick and loose my phone?
I just tried to run sample phone app and it runs on the phone. Initially it said that it was revoked by MS, I run dev-unlock one more time and now it works.
GoodDayToDie said:
2) There are lots of apps distributed with source, and most of them will use some native code. You could do a search on this forum for subject lines including the tag "[SOURCE]" and find several (I release source for all my apps). However, I suspect what you'd find most useful is Heathcliff74's guide to WP7 apps that use native code, which is on this forum at http://forum.xda-developers.com/showthread.php?t=1299134. It includes step-by-step instructions.
Click to expand...
Click to collapse
I'll try to search, hope I'll be up and running soon. Too bad WP7 is DOA. They always had much better tools than all these ghetto Symbian/Android/Xcode crapware tools... WTF is wrong with these guys, at the point when they were surpassed at speed of light by newbies iPhone and Android they made some backward steps to cut off most of the devs (but they added all these 500K Silverlight newbie devs...). I'm so disappointed with Android, seems like they hired all these retards who were fired at symbian: same **** tools
I downloaded a few samples and it seems that all of them contain prebuild dll's and all of them are COM dlls or something like that.
What I'd like to find is simple sample that contains src code to native WinMo dll and C# project that it uses.
As far as I know native dll cannot be build with latest tools (am I right?), but I can use cegcc or VS2008 to build native DLL's.
stuff like:
Code:
if (ComBridge.RegisterComDll("ComFileRw.dll", new Guid("EEA7F43B-A32D-4767-9AE7-9E53DA197455")) != 0)
is totally unknown to me. I would really like to avoid to even elarning anything about COM related stuff. I prefer not to mess up with code that isn't portable.
HI mtlgui,
unless Heathcliff finishes his WP7 Root Tools SDK, you don't have any other way to access native c++ code besides using COM. DFT (The DarkForcesTeam) released a firmware loader, that allows you to flash customized unsigned firmware. They were also able to do some native c++ coding with the WM API. However the used firmware for that is not public and it is limited to HTC devices.
Did you already consider to write your application in c#? Mango has now TCP/UDP socket support for outgoing connections. Incoming connections or services running on the phone aren't possible without using native code, at least for the moment.
Hi rudelm,
if the only way to use native is to build COM dll, then I'm OK with that. My app code is old and I'd rather throw my WP7 device to trash can than trying to rewrite my app in C#.
Eventually, down the road while hacking maybe I'll learn c# well enough to do anything with it other than GUI and calling native/COM dlls.
So, just to confirm my understanding. I need to write COM dlls that access native API (socket, filesystem, wavein/waveout etc) and then load these COM dlls and call their functions from C# (or whatever is the closest lang to c/c++ in the WP7 world).
@mtlgui:
You've pretty much got it. A few thoughts, though:
There is a webserver project available on this site. It includes source for its C++ native component (the library is called NativeIO; I can probably send you the source if you can't find it). It exposes registry, filesystem, and TCP server and client sockets to COM. Note that because this library was built for pre-Mango phones, just compiling it and shipping it may not work on Mango phones as many deprecated libraries were removed in Mango and if the DLL contains any references to them, it won't load.
Generally speaking, what you're asking for with TCP/UDP is possible, though you may have to code against the winsock API directly. It sounds like you're doing as little as possible with C#, so even if the Socket API that is available with Mango were sufficient for your app's needs, you wouldn't be using it.
Filesystem access... even if you have read access to your app's install folder (I haven't checked, though you should), you almost certainly won't have write access. Each app does have a writable "isolated storage" though, under \Applications\Data\{GUID}\Data\IsolatedStore\. I've only ever tried writing to it using C# though, so I don't know for sure if it's writable using the native APIs directly (should be, though).
It's probably perfectly OK to write your app as one big native DLL (hell, it *might* work to just change the build type from Application to Library, then rename main() or something like that). You will need to expose the library to COM, but that's easy. You can then write a very simple C#/Silverlight app (see Heathcliff's instructions, or just post the COM interface and soembody could write it for you). All the C# app needs to do is use ComBridge to access the native DLL, and call a "run()" function or something similarly simple.
For what it's worth, C# is very close to a superset of C++, at least on the desktop. The phone version is crippled a little by not allowing the use of pointers - everything has to be done with strongly-typed references instead, which can make network code a little annoying but is otherwise rarely a problem - but with a little experimentation you may find your disdain for C# to be misguided. It's a useful language to know it today's job market, if nothing else.
Why is your phone still on 7004? That's the launch retail build, something like eight months out of date. On the plus side, this means that things like ChevronWP7 Unlocker still work for you, as you found. On the minu side, it means you're putting up with bugs and missing features that you needn't be. Have you tried updating at all? If/when you do update, make sure to back up the restore points that the Zune software generates (they got in %localappdata%\Microsoft\Windows Phone Update\). That way, if you ever need to roll back to 7004, you can do it. Normally, only the most recent restore point is kept.
Flashing ROMs is safe so long as you don't try something like flashing the wrong one for your device. Unless your bootloader is unlocked (only possible on HTC), you can only flash official ROMs anyhow, which saves you from most of the risks. On the other hand, you're already on as old a ROM as you will find, and so long as you keep your restore points, you can return to it any time you want to, easily.
I'm googling now the board to find NativeIO and that webserver app. So far only references to it, but no src code.
I'm ok with isolated read/write access. All I care is persistent fs storage.
My phone is still 7004 because I just bought it so I can do some WP7 development. I don't want to mess up with updates at the moment.
As I understand from another post ComBridge is C#->COM->native c++ dll or any other dll that can be used, right? I'm just learning some COM to learn enough to start actually programming for the phone. I see that I can pass whatever data I want, but I don't seem to be able to see a way to register callbacks so that native/COM could call back to C#
mtlgui said:
I'm googling now the board to find NativeIO and that webserver app. So far only references to it, but no src code.
I'm ok with isolated read/write access. All I care is persistent fs storage.
My phone is still 7004 because I just bought it so I can do some WP7 development. I don't want to mess up with updates at the moment.
As I understand from another post ComBridge is C#->COM->native c++ dll or any other dll that can be used, right? I'm just learning some COM to learn enough to start actually programming for the phone. I see that I can pass whatever data I want, but I don't seem to be able to see a way to register callbacks so that native/COM could call back to C#
Click to expand...
Click to collapse
Basic introduction to native code and COM, including references to more background info: http://forum.xda-developers.com/showthread.php?t=1299134.
Callback from C++ -> COM -> C# can be done. Decompile the WP7 Acrobat Reader app. You'll see how it works.
Ciao,
Heathcliff74

android 2.1 app dev environment

i find that i prefer using my nst more & more.. in fact, my swanky but gas-guzzling tablet has been all but discarded, except for watching movies in bed.
i am going to find open-source apps, and recompile the latest sources specifically for android 2.1 eclair, as i find that most devs and google market are removing eclair from their horizons. i am particularly interested in small-sized efficient apps. i do use quite a lot of them, but mostly very old versions.
for this purpose, i want to setup a eclair-dedicated dev environment. i am happy to share all apps that i compile & use myself. hopefully, many others might find useful too.
where i need your help is with advice on how best to setup a tiny/efficient (not bloatware) dev environment, bearing in mind that it will only be used to recompile apks for eclair on b&w eink. i notice that some of you are very efficient in creating extremely small apk, and this is what i want to do.
platform:
on my debian wheezy host, i installed virtual box and created a debian wheezy minimal guest. virtualbox guest additions has significantly altered my perception of virtualbox. i had been using kvm previously.
pre-requisites:
install openjdk-7-jdk
dev environment:
google lists android studio as the only official one. it is huge, bulky, cumbersome bloatware imho. i think this is targetted at the new kids on the block not used to terminal environments. but this seems to be my only option for now, till i hear from you lot of some simpler dev tools.
my requirement is very simple, all i need to do is, change some code somewhere and compile.
so i downloaded android studio, and unpacked it in a directory reserved for my android development. loading it is like watching windows booting up! and then it downloads android sdk, which is another huge bloatware, particularly since it insists on downloading all the crap-lollipop-ware which i have no intention of using.
so my dev environment is almost ready! if anyone has suggestions or tips, or want more detailed instructions/commands, please comment..
Don't forget that the NST only runs 2.1 Éclair apps, as its OS is 2.1 Éclair.
This sounds like a great project - I also prefer my NTG (in fact, I'm on it right now!).
veloo said:
for this purpose, i want to setup a froyo-dedicated dev environment.
Click to expand...
Click to collapse
Check requirements for compiling Eclair/Froyo itself, SDK version doesn't matter since it supports all API versions.
Personally I'd use a virtual machine with oldest supported 32-bit *buntu release- better chance that required packages versions will be present in official repos.
EDIT:
This may help, discussion was related to kernel compilation however there should be link to quick tutorial about CM6 (Froyo) compilation- http://forum.samdroid.net/f28/setup-kernel-build-environment-using-virtualbox-windows-7-64-bit-4007/ (sorry if 10-sec advertisement pops up)
thanks folks.. my bad! indeed it is eclair, and not froyo. i have updated my op above.
gen_scheisskopf said:
EDIT:
This may help, discussion was related to kernel compilation however there should be link to quick tutorial about CM6 (Froyo) compilation- http://forum.samdroid.net/f28/setup-kernel-build-environment-using-virtualbox-windows-7-64-bit-4007/ (sorry if 10-sec advertisement pops up)
Click to expand...
Click to collapse
that discussion seems to be about iphone development
veloo said:
that discussion seems to be about iphone development
Click to expand...
Click to collapse
Nope, it's for Samsung i5700 Spica (latest official firmware- 2.1)
all that talk about crosstool toolchain arm-iphone-linux-gnueabi got me confused.. sorry!
No problem. Back then we had to use whatever was available and compiling Crosstool-NG was easier option than to get precompiled Android toolchain.
Anyway check links in the thread, there were tutorials about compiling Froyo from scratch (note: samdroid's wiki is down) and IIRC Eclair had about the same requirements
thx but my objective atmo is not compiling froyo or eclair or any roms. it is purely to compile apps for use on the nook.
I'm aware of that. IMO link provided can help you in preparation of build environment
At work I use Android Studio to build apps, but at home I still just use Notepad++, the Windows tools in the Android SDK and the (ancient) Borland make.
I probably will migrate to Android Studio at home eventually.
Still, coding by hand you learn a lot about things.
In the old days for text editing very large data files I used VE & Vedit plus the old Norton commander file manager, I could select any sort of columns within a text file in VE, hex, plus grep commands. Or ms-word macros with VB APIs if needed too. But these were for huge files from publishers. For most things though I had been using Notepad++ or UltraEdit for years. In recent past I hardly use them, instead I use Sublime Text Editor for almost everything, I like the recent portable version which launches fast. Also if I'm debugging live with breakpoints & watches & changing code in PhpStorm, the open instance of Sublime updates code as I work in PhpStorm. I tried a few modern text editors in the same league which supposedly have bested Sublime, but I keep going back to it for most coding or text. Apart from php and various text formats, Sublime handles & color codes for other types too like html, JavaScript etc. Interesting discussion on modern text/code editors & IDEs:
https://www.youtube.com/watch?v=5K-TalfLFas
Hey a nice effort to build apps optimized for Nook Simple Touch.
Renate, Marspeople, have already created some nifty apps for our device.
How about you update the OP with links to their apps(with due credit to them and express permission for the same) besides sharing your own collection of NST optimised apps ?
I'm totally noob at this, My little dream it's develope a clock app for the nook but I'm stuck in "hello world" when I try to compile my app in Android Sudio 2.1.3 it throws this error: "uses-sdk:minSdkVersion 7 cannot be smaller than version 9 declared in library" Can somebody help me?
I
Use SDK suite ver. 9 and higher or declare in library, that you're using ver.7.
Necropost, I know, but do you hhave links to posts by the people mentioned, with the apps they've developed?
aiamuzz said:
Hey a nice effort to build apps optimized for Nook Simple Touch.
Renate, Marspeople, have already created some nifty apps for our device.
How about you update the OP with links to their apps(with due credit to them and express permission for the same) besides sharing your own collection of NST optimised apps ?
Click to expand...
Click to collapse

Categories

Resources