We are going to build a android library which will provide a API for developers to build applications which can embed certain charts easily (the charts would display specific contents particular to the API).
Since there are no charting libraries that are dominant in the market, what library would be ideal for this. Some of the chart types need to be developed for this that are currently not supported by any native libraries( like heatmaps). Keeping this in mind would you guys advice going in for a native lib or with webview embedded HTML/JS.
The problem with webview is that you cannot package assets(html/js) on a library project like resources. So its again a additional step for the developers using the library to copy the assets to the project.
Additional Info:
My API should allow the developer to easily embed a chart. Something like
<org.example.customPieChart
android:id="#+id=chart"
android:width="150dip"
android:height="150dip"
/>
And the API should take care of everything else. Only if the developer wants to change color, customize the stuff then possibly he will use the other parts of the API and do that.
I have used aChartEngine Library for the chart and its working fine. So I am suggesting you aChartEngine.
Related
I want to build a stock chart, but do not know which library I should use.
Can any library build the dynamic chart to be the background of the view?Thank you.
It's worth checking out SciChart, which has a very powerful iOS & Android Stock Chart control.
It is a commercial component, however it is a very fast and powerful chart library which beats MPAndroidChart by a very clear margin in performance tests. Sorry MPAndroidChart!
You can now clone the Android Chart examples on Github and have a play around with the controls and see how we created the above example app!
Full disclosure - I am the tech lead on the SciChart project
You can use this lib-https://github.com/PhilJay/MPAndroidChart.I used it for one of my projects.
If the requirements seems to be simple enough you could also try to write your own graph.Its pretty simple to do it in android.
For applications like facebook, they provide SDK . I have used many third party libraries for different requirements. What is the difference between both the cases . That is the code bundled as library or as sdk
A Library is a chunk of code that you can call from your own code, to help you do things more quickly/easily. For example, a Bitmap Processing library will provide facilities for loading and manipulating bitmap images, saving you having to write all that code for yourself.
An SDK (software development kit) is a library (often with extra tool applications, data files and sample code) that aid you in developing code that uses a particular system (e.g. extension code for using features of an operating system (Windows SDK), drawing 3D graphics via a particular system (DirectX SDK), writing add-ins to extend other applications (Office SDK), or writing code to make a device like an Arduino or a mobile phone do what you want)
From this thread
Android SDK -> is the core features and software tools that allow you to create an app for the Android Platform. An SDK contains lots of libraries and tools which you will use to develop your application.
A Library -> is a collection of pre-built compiled code which you can use to extend your application's features. For example, you may need to show some graphics in your application. Instead of creating this from scratch, you may choose to use a pre-built library someone else has developed which will give you the features you need thus saving you some time.
Thanks to Nithish for this explanations
SDK is software development kit which provides a platform/a way to develop software while library project is a project which have some lines of code to solve any desire problem, it may have design or code files.
Generally library project focus only one problem but SDK is complete kit/tool to develop any task, if want some functionality in your code which is not present in SDK than we will go for any library project.
SDK is so that you can build applications for FaceBook. SDK can usually only be used in a more specific context. A library is so that you can take the library and use it on your own applications. A library is meant to be portable.
You can obviously use code from anywhere to anywhere, but I think thats the main difference.
I need to create an API library for Android and iOS. I have experience working with Android projects, but zero experties in iOS. I was wondering if I could create a Project library in Xamarin that compiles as a JAR for Android and as an... I-don't-know-which-type for iOS.
No, that isn't possible. Depending on what you are trying to accomplish there may be alternatives. If you are trying to make a library that can be used by others you could make it a Xamarin component - there is a component store you could put it on if you want it to be generally available, otherwise you can use any normal means of source or object distribution.
If you need to interact with a native app/library then you could make the C# code the "owner" of it and have it call into the native code. This works for both IOs and Android (and is used to work with e.g the play services from google).
No, it is unfortunately not possible to do that.
It seems to me that what you need is a Portable Class Library also known as PCL. It allows you to create a project which can be referenced by all Xamarin supported platforms (such as iOs and Android). There are obviously limitations to the approach like not being able to reference platform specific libraries but in your case (of writing an API) it should suffice.
You can read more in this link
Good Luck!
I am trying to use these cool set of add-ins that Google provides in the link below
http://developer.android.com/design/downloads/index.html
But I cannot understand how to integrate it with eclipse so that they are available directly as a drag and drop. Do you have any idea how to use it?
You cannot integrate into eclipse, because it only allows valid Views "linked" to your project (directly or from a library). These are just sources to make drawables. You have to create your own drawables from it. But if you're interested in holo theme, you should check the sources of android (API 11+). If you've installed, you can find it at /platforms/android-11/data/res/ . Maybe you find useful the HoloEverywhere project. But you can use the Action Bar Icon Pack, you have to copy the appropriate drawables to your project and when you drag an ImageView into the layout editor, you can choose the source from a dialog or you can enter path in xml.
EDIT
Forgot to mention, there is a very great online tool which will generate holo drawables with custom colors here.
After some digging up and watching Google IO 2012 videos on Design, the Design pack is actually a template for designers to create a UI before actually developing it. It contains a pack of action bar icons (These can be imported into your project), bunch of stencils that can be used with Adobe products to create an initial mock ups of your applications. Though, they cannot be directly imported into eclipse and used (as they are actually available already with the SDK), its a good guide to start design instead of actually coding and re-inventing afterwards.
I want to know more about Cross-Platform. I'm currently working on my thesis and decided to make an Android Application but not all target users uses Android device. So, We've come up with an idea to Cross-Platform the android application.
I have read the same topic but it didn't get to me too well. iOS / Android cross platform development. I want to know if there is another way than using the frameworks discussed in the link.
I want know what is the best/shortest way to cross platform a Android Application?
Cross Platform tools are in my opinion not a good idea at all. Android is Java, and iOS is Objective C. Android can use NDK to use a C/C++ library so theoretically if you did most of your code in C/C+ it could be used on both sides. I think two natives is more in order. Study NDK to see what could run on both devices. Lets say you built your app as a C++ Library except for UI interactions. Then in theory the library should work on both sides. C/C++ a lot easier on iOS than android however.
Also it really depends on the dependencies your app will have. Lets say you want to use a library but its only available in Java or C++ how does this effect your decision.
You might also consider designing your app so that it just captures data on the devices and the actual processing of the data takes place in a web service.
Another way is use Mobile Web HTML5 Framework like Phonegapp, Sencha touch and more.
Although web technologies don’t perform as well as native, but it is a useful thing that you can try.
See Choosing Mobile Web HTML5 Framework and http://operationproject.com/2011/adventures-in-html5-part-one/
Android application are apk files that are basically zip file that contains dex/odex files and all other resources that you may wish to add.But I think you can use any coding language to develop as long as you have IDE that converts your code to apk and dex .And most important of all your programming language must support corresponding api or must have something similar to cross compile.The reason Google used Java for Android was they felt it is convenient to do it(read it during case Google v/s Oracle)
Personally I feel cross-platform is good since it increases the developers base and understanding of the System (here Android).And I think the same analogy would go with other Systems as well.