Dcoder is a mobile coding platform especially designed to hone your coding skills on mobile. It is a complete package to learn and comprehend the programming languages from a wide range i.e from c to ruby. Here is the added bonus: it includes Rich text editor supporting syntax highlight and packed with all the necessary tools required to give you all the edge an IDE or Code Compiler can give.
Dcoder lets you code on mobile in more than 30+ programming Languages from c, c#, cpp, python, php, java, ruby, objective-c and what not?
Not only you can code, you can debug the code see compilation errors and Result on the same screen. To keep you engaging in coding we have our algorithm section, where you can improve your coding skills whatever be your level whether its novice or expert, We have something for you in there, you will be having fun solving these problems while walking in the park or in a boring college lecture.
The features include:
1. Rich Text Editor with Syntax highlighting
2. Line number, Auto indent, Auto complete Parenthesis
3. Undo Redo
4. File Open/Save
5. Custom Suggestion View
6. Multiple Language Support
7. Replacement for User input for languages like C, C++, Java and other
8. Active debug view for faster access of Output
9. Thoroughly designed Algorithm problems to improve coding Skills and make programmers industry ready.
10. Leader Board : To know where you stand in International coding Ground
11. Custom Menu Drawer
12. Custom Themes, Editable font Size for Editor
and much more!!
+ MindIt : to keep you updated with the latest Tech news from around the World.
Suggestions and Feature requests are most welcome.
For donations: https://www.paypal.me/dcodermobile/25usd (buy me a cup of coffee)
Google Play Link: https://play.google.com/store/apps/details?id=com.paprbit.dcoder
Update :
Code:
VERSION: 1.0.4
CODE: 5
* Solved problems are now indicated by a tick
* Fix during phone rotation, goes back to Code Editor
* App is now intelligent enough to know and remember which Programming Language you love
* Compiler Versions are shown in editor
* Output View,now nicely slide in
* Cursor stability improved, and improved handling cursor at line end
* Major crash during onpause from initial release, resolved
* Fix Error Reading file,no longer need 3rd party File Explorer
* Added Settings for Hiding the Execution Fab while Typing Code
* Improved Undo/Redo functionality , now History is cleared on language change
* Memory optimization
* Fix for issues on orientation change
* Other crash and minor bugs resolved
Update : 1.1.2 brings alot of changes , Please update your Apps, older versions will soon become obsolete.
Changelog :
Code:
WHAT'S NEW
* Added most requested python3 support
* Removed MindIt(Tech News) section
* Added Faq/Help
* Directly open supported code files from anywhere
* D-Pad Navigator for those had issues in reaching line end
* Improved Cursor
* Monospace font for Coders
* Secured social login
* Performance tweaks
* While Open file null length array issue resolved
* Login image background improved
* Some crash fixes.
Older versions will become obsolete.
Dcoder 1.2.1 is up now.
Changelog :
Code:
The update brings so many new features, please update your apps.
* Output can now be seen on Fullscreen
* Better Problem solver results
* User can edit their profile now
* Advance Editor Themes like Draqula, Material Blue for Pro users
* Advance D-PAD for pro users
* And so much new things + crash resolve.
Older versions below 1.0.4 will become obsolete.
We are back with what we do best: UI/UX
Dcoder 1.2.2
Changelog
Code:
Resolve some crashes
Dcoder 1.3.4
changelog
Code:
The update brings so many new features, please update your apps.
• We know you love algorithms, we love that too app size reduced to ~4mb
• Added most awaited languages js/node.js,lua and go.
• Resolved issues with rtl languages
• Improved Servers
• Editor now supports code wrap
• You can control app notifications
• A lot of internal memory usage improvements
• And bugs resolved.
Next Update will add external keyboard support.
Dcoder 1.4.0
Code:
Update 30 March, 2017
Must Update, this brings so many changes and missing features.
• Now supports 29+ Programming languages : swift3, vb.net, kotlin, F#, lisp, R, Scala, Perl, Pascal, Tcl, Prolog, Assembly, Haskell, Clojure, Groovy, Scheme ..
• Translated to Russian, French, German, Indonesian, Turkish
• Forgot Password and Change Password Feature
• All new Help Section
• Read Mode of Code, Copy Output
• Major Bugs/Crash resolve
If you like Dcoder, show your love by hitting thanks button.
Dcoder 1.5.0:
Code:
The update brings so many new features, please update your apps.
• Now supports 33+ Programming languages : Rust, BrainF*ck and most requested html + css added, becomes Top IDE on Play
• UI improvements, now looks even better
• Now you can change order of symbols in Quick Access Bar
• Some unnecessory permissions removed
• Now you can edit files offline ;) , compiler still need internet
• Major Bugs and crash Solved.
If you like Dcoder, show your love by leaving 5 star rating.
AppScreenshots:
{
"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"
}
Superb job bro
Keep it up :good::good:
This looks ****ing amazing! I'm downloading it now to check it out, will let you know what i think
can i compile and edit apk files like .. systemUI.apk to work with 3minit battery
Good work!
I am curious to know what you have used to compile C#, though. It seems that it is compiling in the cloud.
Hello, didn't test yet, but it wouldn't hurt to have syntax highlighting, auto completion and syntax error support for bash and powershell.
Of course we wouldn't be able to run the powershell script from the device itself, but it will be useful to write script on the train.
The integrated RSS feeds will likely eat mobile data while users may have their own rss client already, maybe with the same feeds.
And hey, do you really need to search for accounts on my device ?
Magissia said:
Hello, didn't test yet, but it wouldn't hurt to have syntax highlighting, auto completion and syntax error support for bash and powershell.
Of course we wouldn't be able to run the powershell script from the device itself, but it will be useful to write script on the train.
The integrated RSS feeds will likely eat mobile data while users may have their own rss client already, maybe with the same feeds.
And hey, do you really need to search for accounts on my device ?
Click to expand...
Click to collapse
Hello Sir,
About the accounts issue, google+ login requires account permissions to detect accounts connected on current device.
I'll try to add other features in update.
Thanks for the review.
Uizz.UW said:
Good work!
I am curious to know what you have used to compile C#, though. It seems that it is compiling in the cloud.
Click to expand...
Click to collapse
Yes, it compiles on the cloud, supporting this much programming languages on local was not possible either.
khedr30000 said:
can i compile and edit apk files like .. systemUI.apk to work with 3minit battery
Click to expand...
Click to collapse
hello,
it cant be used to modify apks, its to test small algorithms and code snippet and practice coding on mobile device.
ankush38u said:
Hello Sir,
About the accounts issue, google+ login requires account permissions to detect accounts connected on current device.
I'll try to add other features in update.
Thanks for the review.
Click to expand...
Click to collapse
Why would I need to login to something to write code ?
Magissia said:
Why would I need to login to something to write code ?
Click to expand...
Click to collapse
It is not necessary to login to code, you can press skip button on Login Screen however if you want to solve problems you need to be logined.
Thanks.
ankush38u said:
Dcoder is a mobile coding platform especially designed to hone your coding skills on mobile. It is a complete package to learn and comprehend the programming languages from a wide range i.e from c to ruby. Here is the added bonus: it includes Rich text editor supporting syntax highlight and packed with all the necessary tools required to give you all the edge an IDE or Code Compiler can give.
Dcoder lets you code on mobile in more than 8 programming Languages from c, c#, cpp, python, php, java, ruby, objective-c and more. Not only you can code, you can debug the code see compilation errors and Result on the same screen. To keep you engaging in coding we have our algorithm section, where you can imrpove your coding skills whatever be your level whether its novice or expert, We have something for you in there, you will be having fun solving these problems while walking in the park or in a boring college lecture.
The features include:
1. Rich Text Editor with Syntax highlighting
2. Line number, Auto indent, Auto complete Paranthesis
3. Undo Redo
4. File Open/Save
5. Custom Suggestion View
6. Multiple Language Support
7. Replacement for User input for languages like C, C++, Java and other
8. Active debug view for faster access of Output
9. Thoroughly designed Algorithm problems to improve coding Skills and make programmers industry ready.
10. Leader Board : To know where you stand in International coding Ground
11. Custom Menu Drawer
12. Custom Themes, Editable font Size for Editor
and much more!!
+ MindIt : to keep you updated with the latest Tech news from around the World.
Suggestions and Feature requests are most welcome.
For donations: [email protected] (buy me a cup of coffee)
Google Play Link: https://play.google.com/store/apps/details?id=com.paprbit.dcoder
AppScreenshots:
Click to expand...
Click to collapse
waiting from 1month...
finally arrived for android
Python version
which python version does it use?
Great idea for learning but for actual coding on mobile your only option is running linux in an app or chroot.
All the ide+compiler apps are broken,cost money or have ads.
This cant compile anything without internet.(If you put a tiny version of linux in this with the compilers,busybox,drawpixel api and libc it would be perfect!)
If you need help making a tiny linux I am willing to help.(On the condition that the basic functionality will always remain free and no ads will ever be added.(Charging for extras like online code hosting or workgroup support is OK.))
LucioB16 said:
which python version does it use?
Click to expand...
Click to collapse
python 2.7.6
Python version
ankush38u said:
python 2.7.6
Click to expand...
Click to collapse
Is there any possibility for 3.3+ in the future?
Guicrith said:
Great idea for learning but for actual coding on mobile your only option is running linux in an app or chroot.
All the ide+compiler apps are broken,cost money or have ads.
This cant compile anything without internet.(If you put a tiny version of linux in this with the compilers,busybox,drawpixel api and libc it would be perfect!)
If you need help making a tiny linux I am willing to help.(On the condition that the basic functionality will always remain free and no ads will ever be added.(Charging for extras like online code hosting or workgroup support is OK.))
Click to expand...
Click to collapse
I have already think about it, but there are multiple problems like having root access to use busybox, installing multiple complilers on android device , which takes alot of data. So this is on hold for now, i have some plans for future though or releasing a separate offline app probably some good day.
LucioB16 said:
Is there any possibility for 3.3+ in the future?
Click to expand...
Click to collapse
Yes, Why not . I will be adding in next major release update.
Thanks for the suggestion.
ankush38u said:
I have already think about it, but there are multiple problems like having root access to use busybox, installing multiple complilers on android device , which takes alot of data. So this is on hold for now, i have some plans for future though or releasing a separate offline app probably some good day.
Click to expand...
Click to collapse
You dont need root for what I am suggesting.
Your app can do whatever it wants with the files in "/data/data/$APPNAME$/files".
The mini linux goes in "/data/data/$APPNAME$/files/linuxroot".
Busybox goes in "/data/data/$APPNAME$/files/busybox".
Then the app populates "./linuxroot/bin" with the compilers,interpreters and any other desktop tools
and "./linuxroot/lib" with libc and any librarys needed by the compilers/interpreters.
(The app must download the binarys after installation to determine the cpu architecture)
Now all that is needed is a simple preload library that appeneds "/data/data/$APPNAME$/files/linuxroot" to all file access.
"/" -> "/data/data/$APPNAME$/files/linuxroot/"
"/usr/games/gameexe" -> "/data/data/$APPNAME$/files/linuxroot/usr/games/gameexe"
Nice work
Related
I have a little experience in using C, C++, Visual C#, VB6 and Macro Media AS. Now I want to explore programming appz for PPC.
What is the best programming language for developing PPC app that I can use.
Hi, greate!
Except for Macro Media all the languages you mentioned have compilers for PPC and some are even free.
As for which one is the best, well that depends on what you want from it.
My personal favorite is C++ because:
a. it’s the most powerfulpowerful (easy access to system APIs)
b. it runs faster (no interpreter)
c. you can download a compiler from Microsoft for free. (eMbedded visual C++ 4)
The only down side is that it's not a real visual language so you will have to do more work then in VB.
c# has the all the advantages of .NET but you need Visual Studio 2005 to make PPC specific apps + they take a while to load.
As for Visual Basic there are several compilers including eMbedded Visual Basic 3 from Microsoft (free), but I read the apps written in it are slower. Still it’s a fully visual language.
This is my opinion. You should search for other postings in this forum (there were a couple more on this subject) if you haven’t done so already.
Good luck!
I asked the same question 2 years ago!
I started developing PPC software about 2 years ago - I too needed to find out whuch was the best language - so I tried them all!! - I tried Java - C# - Creme - and C/C++.
Without any doubt at all C/C++ is best - it is native, fast and relativly streight forward. You can use MFC if you like. You can download the compiler free from Microsoft and the support is actually quite good. The Compiler IDE is quite good also.
Just to revive this thread. I thought of starting to write something for PPC. I thought the best place to start is to get the Windows Mobile SDK from Microsoft. However, it seems that the SDK require Visual Studio 2005+ to be installed before I can have the SDK installed. Is there another way to get it started (preferably with SDK and examples) without having me to get a Visual Studio 2005.
Additional info about me: I used to be good in C++ for DOS/Windows, but the current works requires me to work in Java (multi platform). So, just give me a vague idea and I'll find my own way
Hanmin - download the SDK for WinMob 2003, not WM5. EVC supposed to only be compatible with WM2003 SDK. VS2005 for WM5 stuff. The download is a lot smaller too!
V
hands down c/++
normal basic is evil
basic .net is just c# with an evil syntax
c# is nice enough but slow ever so slow
java dont have as nice a platform as on symbian or pc's or well anything else then pocketpc's
with mfc some work is done so you dont need to do manualy for every app
but doing it pure win32 is faster though but have a higher learning curve
I had downloded the embedded VC and installed the SDK for WM2003. I'm trying to write a software to determine the remaining life time of a battery in terms of hours and minutes.
This is what I found out. To get the battery status, I can get it from
SYSTEM_POWER_STATUS_EX
which quite a few properties, but of the few, the interesting ones are:
BYTE BatteryLifePercent;
DWORD BatteryLifeTime;
For BatteryLifePercent, it is Ok. I get to print out the percentage based on
wsprintf(szTextBuffer, TEXT("Battery: %i%%"), g_bBatteryPercentage);
where I assign BatteryLifePercent into BTYE g_bBatteryPercentage
However, for BatteryLifeTime, I seems to be having some problems. I have the code
Code:
if (g_dBatteryLifeTime == BATTERY_FLAG_UNKNOWN){
wsprintf(szTextBuffer, TEXT("lifeTime: unknown"));
} else {
wsprintf(szTextBuffer, TEXT("lifeTime: %hu"), g_dBatteryLifeTime);
}
and I get the value "65535", which if that represent seconds, I should have 18 hours of battery life left. However, I think I have less than that. And consider 65535 is a '2'-base number, it looks more like it is either overloaded or it is a reserved flag.
Anyway, my questions:
(a) other than %hu, whatelse can I used for g_dBatteryLifeTime, which is a DWORD. I tried %lu and %i, where the first gives me nothing, the second one hang my machine.
(b) is this `BatteryLifeTime` working or not?
%d is the normal switch to get a nr
There's a constant BATTERY_FLAG_UNNKOWN that you should test against, also. If that's set, the life time isn't valid. Otherwise, like it or not, that's how long the phone thinks it has left. Keep in mind that the value is probably going to vary wildly as power usage can vary pretty wildly. As mentioned above, you should do something like:
SYSTEM_POWER_STATUS_EX sps;
TCHAR sz[ 64 ];
GetSystemPowerStatusEx( &sps, TRUE ); // Use real time, not cached
wsprintf( sz, _T( "Time: %d" ), sps.BatteryLifeTime ); // in seconds
Oh....and as I recall, little of that stuff actually worked except percentage last time I checked so don't be too surprised if all that's valid is percentage.
Actually it all depends on the battery driver. I had a chance to work with some devices that didn't even report percentage, only voltage and I doubt there is a PPC out there that can accurately report time.
If you really want to determine the time you will need some sort of learning mechanism that will measure up time and battery percentage to calculate remaining time.
Guys, this is offtopic. You want me to make a new thread and move the posts?
V
PPL(Pocket Programming Language)
i found a new programming language its PPL(Pocket Programming Language)
you can install it on your ppc this have compiler ,interpreter and others you can write a program on your ppc and compile it to exe
but C++ is a boombastic language for me,you,
VJ: No problem. I think it stopped. Actually, I've stopped the programming front, I'm skinning these days
accepted: It looks alright, but as it is not a standard language, the stuff you learned from it will go as the PPL disappeared, but with C++, it will stays quite a while. I used to be a C guy and now I'm more of a Java guy which I think C will end as Java rule the world.. but C stands up very strong (thanks to M$). Anyway, you can try the embeded version with tutorial and stuff, easy to start but quite difficult to do a full scale program with it (for beginners). If yuou want quick and dirty method of writing limited number of programs, yeah, I think PPL will takes you on a while.
PPL
Write software for your PocketPC and PC in minutes using our new programming language. PPL is a fast and easy-to-learn programming language that is fully object-oriented. PPL runs on all Pocket PC using PocketPC 2000, 2002, Windows Mobile 2003, 2003SE, and 2005 (VGA compatible). PPL also runs on Windows 2000, XP, 2003 Server desktop computers. Programs written for one system are 100% compatible with the other.
Write high quality games in no time using our easy-to-use GameAPI that incorporates physics, isometric display support, pixel-perfect collision detection and so much more...
Design forms visually on your PDA or desktop computer with the visual form builder. Edit components properties and code events within the same interface. PPL is a complete development environment.
{
"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"
}
The main interface for PPL on the PocketPC. It has been written entirely in PPL and the source code is provided.
Write programs on the road. The editor on the PocketPC. It has been written entirely in PPL and the source code is provided.
Create nice forms on the road. The Visual Form Builder on the PocketPC. It has been written entirely in PPL and the source code is provided.
Get a complete report with statistics on compiling even on the PocketPC.
SDK<Software Development Kit> Edition Features
Windows API support
Visual form design
Linked-List support
Object-Oriented syntax
Powerful matrices
Tools to develop on PPC
String compression
GameAPI
COM and ActiveX
Regular expressions
Enhanced versions of PIDE
Physic & particles engine
File Packaging
Compile to .exe
PPL Assembler (PASM)
Code Profiler
Memory Leak Analyzer
Extended functions
Full version of PIDE
SDK libraries
What is the SDK version of PPL?
The SDK version is a simple module that you include with your project to allow for scripting capabilities. You can also integrate your own functions inside the PPL language. It comes with a pplsdk.dll file (for the PC and PocketPC) and header files for C, Visual Basic and Delphi. The SDK comes with the Pro version of PPL
Acronyms
SDK = Software Development Kit
API = Application Programming Interface
PPL = Pocket Programming Language
PPC= Pocket PC
PIDE = PPL Integrated Development Environment
VGA = Video Graphic Adapter
PDA = Personal Digital Assistant
PC = Personal Computer
Code:
http://www.arianesoft.ca/
it's very very portable language
Rudegar said:
java dont have as nice a platform as on symbian or pc's or well anything else then pocketpc's
Click to expand...
Click to collapse
what about SuperWaba? maybe it could satisfy hanmin's requirments.
I use ppl too. The IDE is really comfortable. You get good results very quickly...
[APP] QetriX: Universal data manager BETA incl. Best Freeware "AppStore-like" project
Allow me to introduce my first-born child, QetriX.
QetriX (Q3X) is universal server-client data manager for .NET (Compact) Framework 2.0+ and WM2003+ (all resolutions). Client program works in both Win and WM (as well as under Mono - Linux, Mac OS X, Solaris...). It can handle almost every data which could be distributed as XML, as well as some existing XML files (e.g. RSS). As you can see on screenshots, pictures and light formating and styles are supported.
Communication with server is standard HTTP POST and GET.
You can take a look to Google-Translated app homepage. Project is language independent, but I'm from Czech republic so I use mostly Czech language.
Well, I tried to define a new web-browsing data-orientated paradigm. There are a lot of useless information and wasted megabytes on the internet and I'm sick of it ;-) The client program behaves like specific-data browser.
{
"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"
}
The idea was to define controls in one (form) XML and data in another XML, one form could be used for multiple data. Main focus was to simplicity, efficiencty and low data transfer (ZIP packing supported, JSON support in progress , work with QetriX is very similar to regular web applications.
Each of downloaded file is stored as cache for further usage. You can define "expiration" for images, data or forms for re-download after this date. I'm planning to release complete XML and app specification, but it takes much more time than programming itself
Configuration is both server and local (for corporate and safety reasons server definitions are preferred). In config file you can set even Main Menu items. You can notice, on screenshots the menu isn't the same all the time. Menu commands as well as form controls uses built-in commands (like "file open xy.q3x") and built-in timer for repeated actions or timing. I tried to make support for "internal" calculations for e.g. currency convertor without sending data to server to do the math.
It's possible to open file from both server and device's memory. It has a "suggest" feature to avoid long searching for desired file. Suggested files are in app directory, in working directory, in MRUDs and even provided by defined online service (especially URL addresses). "Suggest" could be used for any TextBox on form as well. (open-file suggest currently works only with online service so it's turned off right now, sorry for any inconvenience
You can submit one page to server or whole data file. You can even save the data file to device's memory (offline) and send it to the server later. Even it's desired to be server-client, you can use the program without any server.
I tried to implement finger-friendly GUI, you can use finger-scroll (only on Form itself and pictures, where applicable methods are supported by .NET CF) and easy-to-aim "fingerMenu" with configurable buttons.
Server side could be one PHP script, demonstration script with list/insert/update ability has 83 lines and less than 3 kB. I wrote a simple client for web browser that can work with forms and data, it's still very dirty but basically it works ;-)
Because I wanted to keep WM2003 supported and I didn't want to take care of two different versions of the same program, I wrote additional program called "Q3X Aid". It adds support for GPS, GSM Cell ID and Camera. Coordinates are transferred via XML file and if the GPS is enabled and required, client program loads coordinates from this file and uses in request.
Now I use it as:
Shopping list
Twitter client
E-mail client
To-Do list
Calendar
Blog management
Tic-tac-toe game
Now about the "Best Freeware AppStore-like" project:
I know there are many servers for PPC freeware, but It's hard to choose the "best" piece of software. I know everyone wants different features, but sometimes you find bad, buggy or obsolete programs. So I decided to write a simple implementation for QetriX with 1-click install ability (download and run CAB) and current WM version detection (for offering apps and games right for your device).
Now it's ready on my localhost, so I'm building a database of best freeware apps and games. You can contribute, the page is in both czech and english language.
I noticed you help to improve programs so I'm offering work-in-progress beta version. Any bugreport, suggestion or idea warmly welcomed.
I have difficulties to make CAB so please prefer ZIP instead After launching program I predefined two URLs, I recommend "...kraje-cr/" (list of counties in CZ), because it's very simple. The other (...psc/) is a list of all ZIP codes in CZ in very large data file.
After download the form and data file, a link to local file will apper in the MRUD list too, for further usage. You can access the "Open" interface by click to "Panel > Open".
I hope the program is simple and intuitive so you probably don't need a manual. If so, just let me know and I'll try to write one, in english.
Tested on: HP iPAQ 1940 (WM2003), HTC Touch Pro (WM6.1), WinXP SP3
It has much more features (however smugly it looks , I just wanted to wrote the "core".
Please comment and write feedbacks. Thank you!
Super cool!
Hi
Super cool project! I have a similar one going called GSlide (www.GSlide.mobi).
My framework is based around the concept that components (be it remote servers, exe files or system services) communicate using a call/callback pattern. It uses JSON for object state and xml-rpc for method calls.
Maybe we can come up with something cool together? As i have the finger friendly GUI
I must say that its been very hard to find people who are interested in these kind of projects on this forum...
Ciao
Lars
Hi! GSlide is really an Eye-Candy, what's my biggest concerns about QetriX, which looks so old-school! However my approach is much more for data management where nice GUI is not required, but people likes it so it's half of success...
Do you have more screenshots of it's implementations? I'm gathering inspiration Piano looks great!
And I didn't know the editor, thanks I'll add it to my list of "Best Freeware".
Hi again,
My original concept was actually that any form of structured data can be iterated through lists. I think we have the same basic idea here. A generic finger friendly GUI for any kind of data format.
I will try your app today
Ciao,
Lars
Hello,
I've managed to compile a small native web server for Android (but for now only tested on Sony X10 with 2.3.3 version). You will need root.
The main advantage is that you can quickly share photos / documents from your phone as long as there's WiFi available. The other phone needs just to have WiFi and a browser.
It is an Android port of the webserver source code found here: http://www.jbox.dk/sanos/webserver.htm which comes under BSD License.
Download
webserver-1.1.zip
Archive contents
webserver – Android binary
LICENSE – initial BSD License
android_port.patch – BSD licensed patch for webserver.c
README.txt – description on how to install / compile.
Installing
Since most mobile carriers block incoming traffic, you won’t probably be able to access your phone via GSM/3G data connection, only over WiFi.
You need to unpack the archive, and extract the webserver binary to a directory of your choice. Then:
Code:
adb push webserver /sdcard/
adb shell
su
cd /system/bin
cp /sdcard/webserver .
chmod 755 webserver
./webserver -u <username> -p <password> -s <port>
To stop just kill its pid ...
If you run in Terminal Emulator, just send it a Ctrl-C and it will exit.
Screenshots
Starting up the webserver (runs by default on port 80) and navigating to /sdcard/DCIM folder in the browser:
{
"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"
}
For more information about the porting process please check my website.
Change log
v1.0 - 21 Aug 2011
Initial port to Android
v1.1 23 - Aug 2011
Added command line options
Added listing of all local IPs (please check screenshot, it reports IPs and interfaces when starting up. Helps a lot to find out the WiFi IP, tun.ko is detected and works too)
Added Basic HTTP authentication for security
PS: if you have other rooted Android phones, I'm very interested in feedback if this works or not. I did not use anything specific to X10.
Thank you,
viulian said:
Hello,
I've managed to compile a small native web server for Android (but for now only tested on Sony X10 with 2.3.3 version). You will need root.
PS: if you have other rooted Android phones, I'm very interested in feedback if this works or not. I did not use anything specific to X10.
Thank you,
Click to expand...
Click to collapse
good to see someone working on not so generic stuff.... would like to help you with stuff althogh i am not that good at java.
Will be checking the webserver out....
i don't have any other phone however i am in a process of purchasing some tabs so might help you then....
Thank you for feedback
Don't know if it will work in tablets (I did not test it on 3.0, only 2.3.3) .. but yes, if you will root them, please give it a shot!
Did you install this on your own X10? I need some pics.
silveraero said:
Did you install this on your own X10? I need some pics.
Click to expand...
Click to collapse
Yes and I've also tested it on X10. I've attached two screenshots to the first post of the thread. Please check them:
a) I have started webserver within Terminal Emulator
b) Then I navigated to the photos folder, in the browser (192.168.1.6 is phone's IP over WiFi).
viulian said:
Yes and I've also tested it on X10. I've attached two screenshots to the first post of the thread. Please check them:
a) I have started webserver within Terminal Emulator
b) Then I navigated to the photos folder, in the browser (192.168.1.6 is phone's IP over WiFi).
Click to expand...
Click to collapse
just a quick comment
when you copy it to system/bin
you don't need to cd or ./
you cna directly run webserver
EDIT : i would suggest you do one more change.
right now if i understand correctly this can pose a security risk....
as it can give you all folders any file effectively all data any location...
Make changes such that which ever folder you navigate and start webserver from only that folder and its subfolders are accessiblle on webserver.
webserver is already in bin so we can run from anywhere
so if i want to share /sdcard/share
cd /sdcard/share
webserver
hope that will help.
anantshri said:
just a quick comment
when you copy it to system/bin
you don't need to cd or ./
you cna directly run webserver
Click to expand...
Click to collapse
My bad! Yes, I was testing in /system/test when porting, and by reflex I typed it. I will leave it like that in descriptions, but you are right of course
anantshri said:
right now if i understand correctly this can pose a security risk....
as it can give you all folders any file effectively all data any location...
Click to expand...
Click to collapse
It's a difficult decision to start adding security to folders ...
Because next question will be: but I want to access more folders! Or, yes, I want everything but I also want to exclude these and these ... And just like any software product, more time will be spent fool-proofing it. Because if you add configuration files, then you need a ton of error messages (and support for noobs) to explain what is wrong and how to fix it.
This is just a working proof of concept. It works, and it uses so little memory as compared to other Java apps that might do the same thing ...
I also thought of security (since I wouldn't want to start it on a public WiFi) but to add support for username and password - as even allowing some folders is still risky 'cos anybody than then browse all the photos.
On my todo list:
a) add file upload feature (fork()-ing is unstable on Android, so CGI support can't be done reliably - it will have to be built in)
b) add support for username and password.
c) sorting (alphabetically and folders first).
viulian said:
My bad! Yes, I was testing in /system/test when porting, and by reflex I typed it. I will leave it like that in descriptions, but you are right of course
Click to expand...
Click to collapse
I was adding more while you replied
EDIT : i would suggest you do one more change.
right now if i understand correctly this can pose a security risk....
as it can give you all folders any file effectively all data any location...
Make changes such that which ever folder you navigate and start webserver from only that folder and its subfolders are accessiblle on webserver.
webserver is already in bin so we can run from anywhere
so if i want to share /sdcard/share
cd /sdcard/share
webserver
hope that will help.
why not just swiftp ?
phillu97 said:
why not just swiftp ?
Click to expand...
Click to collapse
alternatives the more the merrier.
anantshri said:
alternatives the more the merrier.
Click to expand...
Click to collapse
haha, finee okays. but i enjoy the GUI and all .
phillu97 said:
why not just swiftp ?
Click to expand...
Click to collapse
Well, this is a completely different approach. Native (.c) compile, very fast and extremely low memory footprint.
It is not ment for the masses. Google wants people to use Java / DalvikVM. What I (as a developer) want is to get closer to hardware instead of being abstracted away. While it is true that interface with good implementation wins (Apple proves it), it is very good that we can still go low level.
Second, FTP is limited. You can only connect to download.
In future, if people like webserver and keep providing feedback, HTTP is more powerful:
a) interact with phone - contacts, call logs, send sms from browser, etc
b) have cached previews when browsing the photos - this you cannot over FTP.
c) compression
d) no data/command channels to slow down interaction.
As said, this is a proof of concept, and not offered as an alternative to "SwiFTP" and the rest.
hmmm i see your point
but swiftp has proxy servers and you can upload :S
will test out tho. and will hit thanks when near comp
Sent from my X10i using XDA Premium App
viulian said:
It's a difficult decision to start adding security to folders ...
Because next question will be: but I want to access more folders! Or, yes, I want everything but I also want to exclude these and these ... And just like any software product, more time will be spent fool-proofing it. Because if you add configuration files, then you need a ton of error messages (and support for noobs) to explain what is wrong and how to fix it.
This is just a working proof of concept. It works, and it uses so little memory as compared to other Java apps that might do the same thing ...
I also thought of security (since I wouldn't want to start it on a public WiFi) but to add support for username and password - as even allowing some folders is still risky 'cos anybody than then browse all the photos.
On my todo list:
a) add file upload feature (fork()-ing is unstable on Android, so CGI support can't be done reliably - it will have to be built in)
b) add support for username and password.
c) sorting (alphabetically and folders first).
Click to expand...
Click to collapse
Why not just virtually create a .htaccess inside of each folder?
Do that, and you can get user accounts, directory blocking, etc.
Mayazcherquoi said:
Why not just virtually create a .htaccess inside of each folder?
Do that, and you can get user accounts, directory blocking, etc.
Click to expand...
Click to collapse
this is not a direct fork of apache so .htaccess support will not be an easy stufff to make... so we can let the dev think about how to implement a check....
SwiFTP works with FTP right? Some1 know Wifi FileExplorer?
What i miss with those 2 apps is Add Hoc support! I want to Acces one phone with another over Wifi! Would be perfect over http because it also works to an Iphone. Sadly most apps like that wont work while Barnacle theters WiFi.
P.S. Dont have a PC here, you can compile a APK? Or that wont Work because its not java?
It will work, and APK can launch a native file but I wanted as close to bare minimum as possible.
However, I will only have time to investigate tonight when I get back home ..
New version released !
v1.1
Added command line options
Added listing of all local IPs (please check screenshot, it reports IPs and interfaces when starting up. Helps a lot to find out the WiFi IP, tun.ko is detected and works too)
Added Basic HTTP authentication for security
Download
webserver-1.1.zip
I've also updated the first post of the thread with new screenshots (Hit Ctrl-R to reload the screenshots in case you have the old ones in the cache).
Whilst some will disagree with me this would be awesome to bundle with MySQL and PHP servers...
Apache, MySQL, and PHP running on mobile...not so much for hosting a website but for developement...our devices are getting more and more powerful and would be cool to develop websites on the phone using a mobile version of lamp and an HTML/PHP ide like a mobile dreamweaver/expressions web...that and we already have photoediting software...
Not saying it'd be practical but would be nice...and I think it would come in handy from time to time...
Sent from my PC36100 using Tapatalk
ebbinger_413 said:
Whilst some will disagree with me this would be awesome to bundle with MySQL and PHP servers...
Click to expand...
Click to collapse
Actually
I downloaded the php-for-android bundle and which comes with php 5.3.3 compiled native.
The native php executable lies hidden, since it is intended for SL4A to detect and invoke it; I want to do the same thing, but only from this web server. Initially GET only - and later POST too.
The following issues are make it difficult to have full featured Linux alongside Android:
a) Google's poor implementation of fork / pthread. It is so poor, they insist people should not use it.
Here are some insights: http://groups.google.com/group/android-ndk/browse_thread/thread/1dfa066e20175c5a/e4c79372d365f5e3.
Dianne Hackborn, Android framework engineer, was hinting to actually limit even the basic one that exists, if people "abuse" it. http://comments.gmane.org/gmane.comp.handhelds.android.ndk/2132
b) Google implementation of bionic (many things lack) makes it difficult to port from Linux. Standard libraries are missing (libcrypt / base64 / ... ) and so on.
We'll see but with the avoidance attitude towards low level access (Google need people to use all the location services and ads based apps) I am a bit skeptical that they will ease transition to glibc.
At least to leave it as is ...
Prolog:
Like many of you I am using WhatsApp. Its a widespreaded mobile Messenger, nearly all of my and probably your friends too got this little App wether for Android or *cough* iOS *cough*...
Since I have been using it I am aware of the many issues, especially security issues they are facing. Using apps like DroidSheep or WhatsApSniffer makes it easy to show off the main proplems of this App.
I am hosting some servers, some time ago I made use of SSL Certificates, the in my opinion easiest way to secure your webapp (roughly...).
I just thought "Why dont they make use of this?!" and I fond out, they simply started their server without bearing this in mind.
I am a big fan of HTML5 which gives me the favor of using SSL certificates AND a new technology I really love
WebSockets, some kind of TCP Connection which is encryptable with a SSL Certificate that is really fast, amazingly lightweight in traffic, event driven and up to this point, integrated quite fine (except ie, you all know this )...
A small proplem I am facing is Android not supporting WebSockets natively
I dont know why exactly but there are many (a lot of!) implementations in java...
So what is this all about?
I started a small project, I want to introduce you to....
LightMsg
{
"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"
}
LightMsg aims to be a faster, secure and customizable alternative to WhatsApp and similair services.
Functionality:
I try to implement all the features WhatsApp provides you.
In addition, there is one core feature you will probably like:
You will be able to use LightMsg on multiple devices at the same time, not only mobile devices (well, at least one is required for registration...) but also on desktop platforms and in browser.
What is it build on:
I developed in JAVA some time ago, building a server for a mulitplayer RPG but I never had to do with GUI in JAVA. It is probably not that ard to learn but I simply dont find the time to. So for making this available for multiple platforms with just one source code and giving me the ability to code in my favorite language I build the app using Cordova/Phonegap.
You might have hear about it, this cool tool gives you a WebView with native platform capabilities.
To make it clear:
The App is mostly written in JS and HTML.
The interface I use is jQuery Mobile, i made some good experience with it, I find it quite nice looking, highly customizable (this will be nice for you later ) and easy to use.
Note: I may do a native Android App later but for now, I want to make one source for as many platforms as possible.
If you are interested, the server is also in my favorite language, I use a node.js backend...
Note 2: Since this server is simply a websocket server with some logic, anybody can connect to it, also from outside of the app which makes the server some kind of api for others who want to build an app around the server.
What am I doing here?
The main reason I am posting this here: Getting you (constructive) opinion
Letting you take part in the developement progress helps me to make the app more user friendly.
Annother reason is that I hope to find some people here beeing willed to help me, either in helping me with the html app or also people trying to help me build a native app
I also need somebody to help me integrate SSL support for the JAVA WebSockets since all the distributions out there that also fit with cordova dont provide this...
Not that much to do, simply take one with the functionality and build it around a cordova plugin
Any help is welcomed, Artists for stuff like smileys ( ) or programmers
So what is already done?
Yeah I got a welcome page...
No thats not all
More or less the complete registration process and the connecting process (for making use of multiple device support ) is done, currently im build the chat environment, I am a bit stuck with the architecture for handling offline messages and the multiple connections for one user account
Also I got some localization finished, all text in the app is either available in english or german...
If you want to help me localize it for you language I can send you the template and you just have to fill in the text
Localizations:
- German
- English
- Spanish
- Croatian
- Hindi (Indian/Have to try out what it looks like in browser because of the symbolic letters)
- Italian
- Dutch
Latest English Localization found here: http://forum.xda-developers.com/showthread.php?p=33549618#post33549618
So for now I can provide only a few screenshots you find in the attachement
Note: Please, Don't Call Me Maybe
BTW: You can also like my Facebook Fanpage https://www.facebook.com/LightMsg
Ok so now its up to you, ask your questions, tell me your suggestions and ideas and I will happily answer them Meanwhile I gonna step over to the chat architecture
//Robert
Edit no1:
Since I and probably everyone who is reading this thread wants to get this app into Alpha stage there are currently 2 things to get this done:
First and most important:
I need someone to help me integrate the SSL part in the Websocket client.
This is really important because this makes LightMsg more (or even at all) secure than WhatsApp...
The Server I use is only accepting ssl connections right now so please someone, this isnt that much work
Second but also important:
The account verfication is by SMS (the only way to verify the phone number ) and this means each SMS costs something for me.
The prize is not that high but since i got myself a new development device ( uuuuhhhh RAZR i ) i dont have any pocket money left
I might afford registration costs for 100 to 300 accounts but from what i see from the reader counts of this thread
there are maaaaany more people interested in getting LightMsg...
I know investing is hard if you have nothing in your hands but i would realy appreciate if you would invest some bucks into this,
before or after release of the alpha
Just PM me if you would like to
Edit no2:
So I know this will make you all hope for the LightMsg release but its actually only for me to get a list of interested persons who will get a early alpha version
LightMsg Alpha SignUp
Lets see how many people register
Change Log:
Fix - Fixed a bug or error
Added - Added but not yet functional or disabled
New - new feature added
Update - Updated an old feature which was already present to make it better or more effective
v0.0.9:
- NEW! verification button takes you immediatly to the verification page.
- FIX! removed the timeout on app start.
- ADDED! minsdk version 7 (experimental)
v0.0.8:
- NEW! Google push notifications.
- ADDED! option buttons for vibration and statusbar notifications.
- NEW! offline sent messages are now sent when connected to network
- ADDED! file sending theoretically integrated (practically: file inputs are
disabled in webview -.-).
- UPDATED! locking chat more secure (when coming back from lockscreen you
see
conversation page).
* NEW! pressing back on conversation page disabled (for not beeing able
to
go back into locked chats).
- FIX! error on "Connection to server failed" on startup for some of
you through adding a hicher timeout to the page loading.
v0.0.7:
- FIX! the send button.
- FIX! the contact list, contacts getting added multiple times.
- FIX! line breaks in messages, (some of you recognized the escaped
messages from me ).
- FIX! Sending message to wrong conversation when upgrading
- ADDED! decent notification (already in 0.0.6 i think)
- ADDED! newest chat now on top
v0.0.6:
v0.0.4:
v0.0.3:
v0.0.2:
v0.0.1:
-Initial release
You will be able to use LightMsg on multiple devices at the same time, not only mobile devices (well, at least one is required for registration...) but also on desktop platforms and in browser.
Click to expand...
Click to collapse
Is there any way at all to actually send/receive messages from WhatsApp contacts without them switching to another app? This is possible on many desktop clients (e.g. Xfire, Raptr, Miranda IM, etc)
Aktually this is not what i think of beeing constructive...
There isn't anything to talk about yet since you're still building the base (I like the icon, the UI seems nice; you want to include WhatsApp's features, that's great! being named "LightMsg" I'm not sure if you would consider free voice calls as well, just like viber).
I did, however, ask a simple question that you should be able to answer at such an early stage. Was the text too small (hint: it's right below the picture)?
Usually i asociate those picture with trolls so...
Voice is not intended, im not even sure wether websocket kann handle this (probably...) but i want to stay with Msg- ing
Sry, the text size seems to be smaller than usual and i thought it was not meant for me
Well whatsapp only allows one connection with one account at any time (its the xmpp protocol, facebook chat used to use this too...) so beeing logged in parallel isnt possible neither receiving msg on both ends, only at one end at a time...
personally i only use whatsapp because so many people use it and my app isnt quite ready, but many of my friends (and also other people on facebook ) would reaally like to switch, because whatsapp is SOOOOO insecure...
did this answer your question?
Seems to have great potential. If you want, you could send me the logs to translate them to Spanish. I'd like to help you out (especially if it'd be available for Xperia Neo V Stock 2.3.4)
Hey sounds great
I will send you the english templete i currewntly use (it expands during developement you know )
this wont be device specific, should work on all devices 2.2+
English Template
Ok this is the english template...
the app reads out the navigators useragent so for german its de (Deutschland ) english its en and fr spanish probably es, im not sure...?
Anybody wo is willed to do such a localization for LightMsg can download the template and post it here or send it to me
EDIT: Why the hell do I have to zip the js file?!
There's a typo on line no. 40 on the file you sent me. Please, correct it (it says "freinds" instead of friends).
I've already translated the file. I came accross a sentence in German, but I used google translate to translate it to English so I'd provide the meaning in Spanish (as I do not know any German). Hope this translation file helps though.
I'm still wondering what do I have to write in the first line of code (var localization= ). Should it be Sp (standing for "Spanish") or Es (that stands for "Español")? No idea. I named the file Sp though.
Regards (and looking forward to the future improvement of your app),
Morrissex
PS: I'd like to know how the premium system will work and if there will be free and paid versions of the app.
Gracias mi amigo
Found the missing translation it should be something like "Activate your device" (i guess thats what you wrote...)
thanks
on monday im going on vacation for 10 days so i wont be able to work that much on LightMsg but I will do my best
Great. Enjoy your vacs. Just remember: any thing I could help (I know a bit of PhotoShop too), just tell me. I'm glad I could help.
Offtopic: You didn't answer my post-scriptum comment on the post above. :/
I should really read the comments till the end
happens the second time...
the var localization only defines the global localization object from wihch the fields are filled....
the files are named after the user agent string which is when I am correct es
I renamed the file to es.js...
answers your question?
Sorta. I asked too what is that "premium account" thing. I'd like to know how the premium system will work and if there will be free and paid versions of the app.
Ok so the chat client itself will be free but we need to refinance the verification sms and i would like to finance my studies i want to start with in about a year so i need to get money from somewhere...
i would like to make the use on multiple devices premium for a price of 1 or 2 $/€...
In developement it will all be free
Alternative ways?
I haven't thought of other ways to monetize your app. Lemme think of other ways and I'll tell you.
The only thing that is not quite clear for me if the verification will be by SMS and e-mail or just SMS.
The Verification is about the Phone number, to check that you only register a real/your number...
So it will only be by SMS, not by mail
BTW: Its already integrated and working
Just have to put some money by credit card (which i dont have) on our twilio account
I am up for Hindi (Indian) language localisation
Please pm if ok!!!!
Sent from my ST25i using xda app-developers app
So here we are again from egypt
greatfully my dad sponsored me an internet access key so i will get here from time to time
Ok i sent you a pm, as i mention in thr pm im courious about symbol fonts like japanese or chinese (and i believe hindi too....) how to display them correctly and with which encoding...
I usually use utf 8 and im pretty sure its only latin..?
Some updates:
The frontend gui for chats is implemented and the backend for serving msgs is implrmented too
Note:
It already supports multi user chats
Only communication betwren thr instances isnt completely finished, will get that in the next days
Maybe we will get an alpha soon?
WANTED:
I really need a good java developer to help me with integrating ssl websockets with cordova!
//Robert
Sent from my LG-P500 using xda premium
I'm an interaction designer, UI designer (photoshop and CSS3) and jQuery coder...
If you need any help with the interface hit me up!
Hey man
Since we are currently working with jquery mobile i dont need an ui artist atm
For sure later when we come to native apps
When you say you are jquery coder i think you are familair with jquery mobile and js in general right?
I havent looked into this but i want the users to be able to load on jq mobile themes...
Would you try to find a way to load css files after the initial loading? Or just find out if its even possible?
I dont have enough free traffic here to search for it, i might take a look at it anyways later but for now it would be great if you can look into it
Small update:
When manually sending msgs the client receives the msg, just have to integrate it into the interface as well as a delete chat feature and save chats to file on sd
The chat includes (as i already said) multi user conversations and implements thatultiple to your account attached devices also receive your message
Still looking for a java dev :S
//Robert
Sent from my LG-P500 using xda premium
In April, Microsoft released a preview of a framework for Windows Store apps that would convert .NET assemblies into the compiled native binaries of the target architecture (x64/ARM for now) in order for application optimization. This tool was named, .NET Native.
This tool itself will help protect your code and IP (a.k.a make it even harder for people to reproduce your code, but not impossible) and also increase the application's performance.
Getting Started:
To download .NET Native, Go to the home page and register/download the preview. Close all instances of Visual Studio 2013 (VS 2013 Update 2 is required) then run the installation package.
The .NET Native tools are configured to purely work with Windows Store apps only, but I figured that it SHOULD work with Windows Phone 8.1 projects since they both use WinRT (mostly). I decided to come up with a solution that would enable .NET Native for Windows Phone 8.1 projects manually since there's no way to enable it from Visual Studio.
Here's the PowerShell script that runs this. BE SURE TO RUN AS ADMINISTRATOR
I've tested this with VS 2013 Ultimate Update 2 running on Windows 8.1 Update 1 with the English language.
The syntax is as follows:
./enableProjectN.ps1 -solution "c:\pathtovsproject\wp81solution.sln"
The script will go through and determine whether you have VS 2013 installed, and whether the projects in your solution are WP 8.1 projects. It will then add the project config nodes that enable .NET Native.
For this to work, you MUST target your projects to the Release|ARM configuration in Configuration Manager.
The building of your project will take a little longer since it is running all of the tools to compile your C# into the native binaries . The file size will go up exponentially, but the app will run faster.
Read through the Compiling for .NET Native page for complete information on how the .NET Native technology works and for any gotchas.
Happy compiling.
EDIT: I've noticed that my test app doesn't work. It wasn't the initial app I was testing with, but I found out why people are getting dependency errors during deployment. You have to include a C++ WinRT Universal Component in your solution and reference it from your main app, then the build will link up the dependencies needed and allow you to push it to your device.
Found a tiny issue with my .NET Native script for WP 8.1 You HAVE to run powershell from within the Developer Command Prompt for VS 2013, THEN run the powershell script. I didn't realize that I had made this script from within that environment and noticed that the essentially environment variables that I am using weren't there when calling PS regularly.
Nice share! Will try this at home tonight.
FabricioGS said:
Nice share! Will try this at home tonight.
Click to expand...
Click to collapse
Awesome! One thing to note for now. This will only work for projects that are sideloaded . The Store doesn't accept some of the DLL Imports that are added by the generated dlls.
snickler said:
Awesome! One thing to note for now. This will only work for projects that are sideloaded . The Store doesn't accept some of the DLL Imports that are added by the generated dlls.
Click to expand...
Click to collapse
Anything in particular?
Sunius1 said:
Anything in particular?
Click to expand...
Click to collapse
{
"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"
}
I am sorry but isn't ahead of time compilation the way .net apps have compiled to native on windows phone since 2011?
The compiler does produce MSIL assemblies, but these are compiled to native upon deployment, unless the dev side loads it and the package is created for JIT.
Has something changed in wp8.1?
As far as i know, .net native is only designed for windows store apps.
mcosmin222 said:
I am sorry but isn't ahead of time compilation the way .net apps have compiled to native on windows phone since 2011?
The compiler does produce MSIL assemblies, but these are compiled to native upon deployment, unless the dev side loads it and the package is created for JIT.
Has something changed in wp8.1?
As far as i know, .net native is only designed for windows store apps.
Click to expand...
Click to collapse
This completely makes Native binaries using a compiler that's just like C++. No .NET code whatsoever. The DLL that's generated contains the bulk of the code and the EXE just loads the entrypoint of the .DLL.
Yes, for now .NET Native is designed for Windows Store apps, but since WP 8.1 just happens to use the WinRT assemblies that .NET Native needs, it will actually work for WP 8.1 apps. The Store doesn't accept the particular native functions that were listed in the post above yet though.
I've attached a blank WP 8.1 project that I've .NET Native compiled. Peer into the .DLL using IDA Pro and you'll see what they did. Notice that none of these files are .NET assemblies, they are pure ARMv7 compiled PE files. The .NET Native precompiles to pure Native binary, not doing optimization on an assembly for the specific architecture.
Check out the .NET Native links I put in the first post as they explain more of what's going on.
I know what .net native is and how it is different from the usual .net compilation, I am just not so sure it is of any actual use on windows phone. I know a lot of people would kill to get this on desktop (well, they technically do, with ngen), but on windows phone, i really don't see the need.
It'll be faster to run, no memory overhead with the compilation and better protection of your code. I see it as very useful for those who want to code in C#, but have it fully compiled to native binary for the speed and execution time without having to use C++. I don't really see how it couldn't be useful, but to each their own I guess .
I just posted this because it was a cool tweak that I've seen some interest from in others.
Well, it's undeniably a cool find. I'm unsure of its usefulness, though.
Normal phone apps, even from the Store, still have the CIL binary code in them. This makes them much easier to reverse engineer, among other things.
On the other hand, a JIT (from CIL to native) can perform some platform-specific optimization, which may produce a faster-running binary than one which is compiled for a generic target. With that said, I don't believe that the Store apps actually get JITed on the phone - I *think* they are instead pre-compiled to native for each processor that is in common use, and the correct one is installed - so this performance improvement may already be present. On the flip side, while .NET Native does allow you to bypass the JIT startup time (I assume that's what you meant by "speed and execution time" since it still performs the other things, like dynamic memory management and so on, that slow down managed code...), so does the precompiled-at-the-store approach.
A clear downside of .NET Native is the large binaries it produces. That wastes space with a lot of install footprint, and may also cost memory (assuming the phone kernel retains the page combining feature of NT6.2 and higher on the desktop, this impact could be minor or it could be massive depending on whether the chunks of code from the .NET framework are compiled in aligned on page boundaries and thus suitable for combining). On the other hand, there's no need to keep both the CIL and the native code in memory at once, so it could save some RAM too.
Anyhow, you're getting something that may actually run slower (all the downsides of managed code at runtime, none of the advantages of JIT) without any faster startup than is already available from the Store. It makes bigger downloads and uses more install space, and may also cost extra RAM at runtime (or may not). Unless you really want to use a managed language in a hard-to-reverse-engineer way - which is admittedly a common goal, as evidenced by all the obfuscators out there - this doesn't seem like an advantage over the existing options.
GoodDayToDie said:
A clear downside of .NET Native is the large binaries it produces. That wastes space with a lot of install footprint, and may also cost memory (assuming the phone kernel retains the page combining feature of NT6.2 and higher on the desktop, this impact could be minor or it could be massive depending on whether the chunks of code from the .NET framework are compiled in aligned on page boundaries and thus suitable for combining). On the other hand, there's no need to keep both the CIL and the native code in memory at once, so it could save some RAM too.
Click to expand...
Click to collapse
^^ This was my only big concern.. The immense binaries.
Does this actually work for you on the device? For me, it adds bunch of references to Kernel32.dll, which obviously doesn't exist on the phone and in result it fails to even start.
Sunius1 said:
Does this actually work for you on the device? For me, it adds bunch of references to Kernel32.dll, which obviously doesn't exist on the phone and in result it fails to even start.
Click to expand...
Click to collapse
It worked for me when I tested on my phone (Lumia 1520/Cyan). I made this thread only after having it work on my device first. I tried it without the Cyan firmware first though.
snickler said:
It worked for me when I tested on my phone (Lumia 1520/Cyan). I made this thread only after having it work on my device first. I tried it without the Cyan firmware first though.
Click to expand...
Click to collapse
Strange. If I download your attached "Empty" app, and open the main .dll in Depends.exe, I can clearly see 2 references to kernel32.dll and one to ole32.dll.
Sunius1 said:
Strange. If I download your attached "Empty" app, and open the main .dll in Depends.exe, I can clearly see 2 references to kernel32.dll and one to ole32.dll.
Click to expand...
Click to collapse
Hmm, does it actually deploy and run for you though?
snickler said:
Hmm, does it actually deploy and run for you though?
Click to expand...
Click to collapse
Well, you posted naked files, not an app package. Making a package with makeappx and trying to deploy it with the AppDeploy.exe fails the deployment fails due to dependency check.
Sunius1 said:
Well, you posted naked files, not an app package. Making a package with makeappx and trying to deploy it with the AppDeploy.exe fails the deployment fails due to dependency check.
Click to expand...
Click to collapse
that IS the package made via Visual Studio when you click to prepare a Store app (which uses makeappx to generate the appx project). You're probably missing the VCLibs dependency on your phone (somehow).
Packaging doesn't INCLUDE the dependencies with the package manually. The VCLibs appx is on the file system if you have the 8.1 SDK though.
/facepalm. Since you posted it as a zip file, I actually thought you zipped up output folder, instead of building app package and then renaming.
However, it will still not deploy for me. I do have VCLibs, and even putting them next to the appx file fails the deployment process. Anyway, I'll try some more stuff to see if I can get it to work.