I just had an idea for a cool website, but it would require an application that is fairly similar to the Google Maps interactive map. I was wondering what it was made in?
Is it a Java applet or a Flash application? Or something else?
Thanks a lot
Javascript. Lots and lots of javascript, with JSON for loading new data without refreshing the entire page.
If you'd like to know more, there's quite a community revolving around Greasemonkey that specialize in extending/reverse engineering the google maps codebase.
Another option for your mapping app: Program it it Java building off NASA's free WorldWind geospatial API. You could release it either as a standalone app, or as a JApplet that runs within browsers. The latter simplifies distribution and versioning.
Google API is Javascript. It is also available in Flash.
Bing map is using the same sytem and it is available in javascript or silverlight.
You may also be interested in openstreetmap (free alternative).
If you want to build a tile system from the ground, the easier is to use flash. You will avoid cross browser issues, and easely target large audiance. (I made one long time ago before gmap was out).
If your application require a map, you can use either Map API and build your application on top of it. Be aware that some kind of application and some uses require a licence fee and the entry ticket is quite high ($10k for gmap).
For the client side they are using the Google Closure Library, with a lot of extra javascript on top.
Rolling Thunder has had the flyby capability for many years. You load a gpx file then you can fly over or just slightly above group and can control the rate you fly and can pause and look around. It works on windows or the Mac OSX. You can find the Windows version at http://www.myuniportal.com/download.html Download the Map login version and then open a Map child window the select the foot button on the Map child window. You download a gpx file then press play and it will start at one end of the trail and fly over it.
Related
I am writing a Java program for my workplace, to help catalog pricing with several parameters involved. The current program implements JComboBox, along with other Container objects.
I have realized that our workstation will not run a Java program through Windows due to protective limitations, so I am hoping to transition to Google App Engine, since we can load websites much more freely.
The problem I have run into is that JComboBox doesn't run through Google App Engine. In fact, none of the Containers I was using will work in Google App Engine. The tutorials on Google Developers haven't provided the information I need.
Where can I find information on what objects I can use in Google App Engine to simulate a GUI with pop-up menus and buttons?
(I am using the Google Plugin for Eclipse.)
Maybe this link will help you, it lists all compatible frameworks: http://code.google.com/p/googleappengine/wiki/WillItPlayInJava
For a higly responsive GUI, I suggest you take a look at the GWT: http://www.gwtproject.org/examples.html
In a nutshell: GWT allows you to write web applications with Java. Some/all of the Java is converted into JavaScript for better usability.
If you want to use Google App Engine (GAE) you can either use GWT for a standard GUI or a Java Webframework like Vaadin or JSF.
I have a great idea for an Android app, but as I'm only familiar with php/js, I'm uncertain of which approach I should choose for creating it. The app will be based on a google map with a lot of position markers. There won't be any fancy animations or other heavy resource-demanding activities.
As I see it there are three different options:
Read up on Java and program the whole thing in Java
Create the map activity in Java as a mapview and then use webviews for the other activities (which can easily be scripted as html5 webpages.)
Script everything as a webapp (not really an option, as this is not a real mobile app imho.
I'm most keen on using no. 2 as I'm quite familiar with html/php/js/mysql. Have to read up on the html5 specifics, though. Questions:
I need access to GPS and camera hardware. Is that acheivable in webviews?
How complicated is it to pass variables between js in webview activities and java in other activities?
How big a difference in performance can I expect if I use option 1 vs option 2?
Other thoughts?
Kind regards,
Anders
You can choose number 2, but as we are talking about an android phone, you might want to get really accurate coordinates for your map, and you can only achieve this by accessing your phone GPS, through webviews the best you can get is the location trought the device internet IP adress, wich doesnt lead to a very accurate geo position.
The best choice is a 100% java application in my opinion.
1) Yes it's possible, but as commented it will be less accurate and probably slow.
2) Not complicated. Painful if you need loads of interaction between a webview and native app. Using a Javascript Interface that can be set up from the native app. You can basically inject javascript in a webview's html.
3) Heterogeneity of performance depending on device. Because your implementation will be based on the device's browser you can expect to get really sluggish behavior for older devices. Anything to do with HTML events (Dragging, Tabbing...) will have a knock on most devices, from my experience.
4) As #vodich comments there are other party frameworks. My benchmarking on PhoneGap and other js-based options is that they're a waste of time if you are looking at developing a professional app. I haven't developed on Adobe AIR but find a pain the need to be installing plugins to get native functionality (access to sensors, camera, etc) Mobile is all about fast, responsive behaviour. HDI is your finger, user is fast, so app needs to be fast.
EDIT: So hell yeah! Java FTW!
Albert.
4.Other toughts?
Yes, if you really want to make a great Android app, you should be using only Android and specific Android UI components, and give it a native look and feel. And regarding 1,2 yes it is possible, I would say not so complicated to just integrate them, but I think you'll eventually get in big problems.
Learn Java and write your application natively.
Webviews might allow you to use your php skills to present something to the user, but it's entirely one-way - you'll not be able to interact with what's inside.
The Android developer site offers fantastic documentation and jumping from PHP to Java isn't greatly difficult, though you'll need to get used to strict typing and "real" OOP.
Other thoughts? Don't go down the PhoneGap/Cross platform toolkit road - it might allow you to write applications for multiple platforms and using your current skills, but in the end you get a subpar app that doesn't feel right on either platform and doesn't fair well as future versions of iOS and Android are released.
I would like to connect a kinect (sorry) to a PC so that users can interact with my webapp via gestures. I don't have a clear idea about what level of programming is involved in order to achieve this, but a JavaScript API would be ideal (Java would also be tolerable).
I've had a look at DepthJS, but the installation/setup alone has almost defeated me. At a minimum I need the user to be able to move the cursor and click, but ideally I'd also like them to be able to use smartphone gestures such as pinching.
Is there an API available that provides these features, can be installed/setup relatively easily, and can be programmed with JavaScript? I don't know if this makes any difference, but I'll be doing the development on Ubuntu.
Kinesis leverages web technologies developers already know best HTML/CSS/JavaScript. So you can reuse your existing code and existing team to build gesture enabled applications on top of Kinect for Windows SDK
Zigfu provides a browser plugin called ZigJS for Kinect and will enable HTML/JavaScript Kinect apps using hand gestures.
OpenKinect is an open community of people interested in making use of the amazing Xbox Kinect hardware with our PCs and other devices. They are working on free, open source libraries that will enable the Kinect to be used with Windows, Linux, and Mac.
Don about that
At a minimum I need the user to be able to move the cursor and click, but ideally I'd also like them to be able to use smartphone gestures such as pinching.
You`ll find many examples about Mouse cursos tracking. I think that connecting mouse to kinect is one of the first that kinect developer is trying to achive. This is very simple thing. You just connect cursor with one join, track him and scale it to monitor resolution :)
But I'm not sure that you want it . Even as a minimu. I remember that on channel9 I was watching movie about websites controlled by kinect. This technology exists for 100% and it's preaty stable. So you need just to look there.
IMO focus on api`a/frameworks for that. Cause connecting mouse to kinect just for using this on websites has many disadvantages
Microsoft released new SDK 1.8 with Kinect.js library last September. I'm sure this is what you need http://blogs.msdn.com/b/kinectforwindows/archive/2013/09/16/updated-sdk-with-html5-kinect-fusion-improvements-and-more.aspx
I need to stream multiple videos in a web browser and have them all be synchronized; I also need to be able to switch between audio channels on the fly. Despite a lot of research, it looks as though at present this is impossible using the current browser implementations of HTML5 video. Flash seems to have the same problem. There are forums full of people wanting to do on-the-fly, in-band audio and video switching with sync, and multi-video playback with sync, but no real way to do it.
It's in the HTML5 spec for the future, actually, but has no browser implementation yet.
So, I need to build a custom plugin or application.
What is the best approach to doing this? Would something like Google Web Toolkit be a good place to start? Is client-side Java a good approach to building something this custom but with ease of deployability (vs say OS-specific C++ plugins, for example)?
JavaFX 2(An official supported Java library) has a video player which I've seen modified interesting in a 3d world and basically doing what you want. Currently it only supports flv, but they probably change it like it was in JavaFX 1 and support what ever installed codecs on ones computer, once out of beta.
Edit: Checking over the video stuff again not totally sure on keeping things in sync when this is on there roadmap (http://javafx.com/roadmap/)
Synchronized Media and Animations
Sometimes applications need to have very tightly aligned media and
animation in a timeline. JavaFX 2.0 will provide support to tie a
timeline to a specific media stream such that events in the timeline
occur in sync with events in the media stream.
I have a general old-fashioned phone that has no special app system and uses Java (I assume ME) for the few applications you can use on it.
This is still a decent userbase and I'd like to start programming for this type of phone. I already know basic Java theory and syntax, so.. where do I get started for programming for non-smartphones?
Best programming environment for Java ME IMO is Eclipse with EclipseME. Includes lots of built-in stuff about packaging your midlets etc. The SonyEricsson wireless toolkit is great for PC-based testing and debugging, but don't forget on-device testing!
If you don't know much about Java ME's lifecycle, then get reading as widely as you can, and try lots and lots of examples. Start with the JSR-118 (MIDP2) javadocs; you'll want these open on your desktop at all times while coding.
Don't waste too much time with the form-based user-interface; I recommend either rolling your own using Canvas, or read about LWUIT.
You can do all sorts in Java ME and target a very broad range of handsets. HTTP capability is guaranteed, so you can hook up to a public web service, or create your own using something like Google Appengine.
Finally, you can release your app very easily on somewhere like Get Jar. Don't be put off by those who say "no owners of Java ME handsets want apps", you'll find the most popular user bases on this site will be users in countries such as India and Indonesia.
Good luck!
I would start with a book on J2ME and work from there.
Try Beginning J2ME: From Novice to Professional.
You could also download the J2ME SDK and play around with the example they give.
For tutorials have a look at the stackoverflow question https://stackoverflow.com/questions/584923/do-you-know-a-good-j2me-tutorial as mention in my comment.
I started with writing simple Flashlight application (choose how much seconds screen will remain lit) in NetBeans ME. And other app which I mange was Countdown with some graphics and sound. After that I found limitations too much annoying and now I'm waiting for my Android phone.
in short:
If you want to try it out - you don't need to buy books. There are plenty of tutorials around.
But, if you want to start deep development - don't waste time.