All Projects → antvis → F2native

antvis / F2native

Licence: other
📱📈An elegant, interactive and flexible native charting library for mobile.

Projects that are alternatives of or similar to F2native

Calendar
📆 calendar 日历
Stars: ✭ 119 (-8.46%)
Mutual labels:  mobile
Tf2 Mobile 2d Single Pose Estimation
💃 Pose estimation for iOS and android using TensorFlow 2.0
Stars: ✭ 122 (-6.15%)
Mutual labels:  mobile
Cordova Node Xcode
Apache cordova
Stars: ✭ 128 (-1.54%)
Mutual labels:  mobile
Koom
KOOM is an OOM killer on mobile platform by Kwai.
Stars: ✭ 2,247 (+1628.46%)
Mutual labels:  mobile
Flutter app sample
flutter app sample
Stars: ✭ 120 (-7.69%)
Mutual labels:  mobile
Components
MobileUI was created thinking of making your hybrid application faster and smaller since you only install what you are really going to use for UI.
Stars: ✭ 125 (-3.85%)
Mutual labels:  mobile
Mentorship Android
Mentorship System is an application that matches women in tech to mentor each other, on career development, through 1:1 relations during a certain period of time. This is the Android application of this project.
Stars: ✭ 117 (-10%)
Mutual labels:  mobile
Vue Quick Loadmore
A pull-down refresh and pull-up infinite scroll component for Vue.js.--vue移动端下拉刷新上拉无限滚动加载插件,支持更换加载图片,保存和设置滚动距离等。
Stars: ✭ 129 (-0.77%)
Mutual labels:  mobile
Pleaserotate.js
🔄 Politely ask your users to view your mobile website in portrait or landscape mode
Stars: ✭ 121 (-6.92%)
Mutual labels:  mobile
Nativescript Geolocation
Geolocation plugin to use for getting current location, monitor movement, etc
Stars: ✭ 127 (-2.31%)
Mutual labels:  mobile
Dom7
Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API
Stars: ✭ 119 (-8.46%)
Mutual labels:  mobile
Hello imgui
Hello, Dear ImGui: cross-platform Gui apps for Windows / Mac / Linux / iOS / Android / Emscripten with the simplicity of a "Hello World" app
Stars: ✭ 120 (-7.69%)
Mutual labels:  mobile
Awesome Mobile Security
An effort to build a single place for all useful android and iOS security related stuff. All references and tools belong to their respective owners. I'm just maintaining it.
Stars: ✭ 1,837 (+1313.08%)
Mutual labels:  mobile
Onionbrowser
An open-source, privacy-enhancing web browser for iOS, utilizing the Tor anonymity network
Stars: ✭ 1,702 (+1209.23%)
Mutual labels:  mobile
Ionic2 Reddit Reader
Ionic 2 Sample App
Stars: ✭ 128 (-1.54%)
Mutual labels:  mobile
Model2app
Turn your Swift data model into a working CRUD app.
Stars: ✭ 118 (-9.23%)
Mutual labels:  mobile
Push Plugin
Contains the source code for the Push Plugin.
Stars: ✭ 122 (-6.15%)
Mutual labels:  mobile
React Responsive Carousel
React.js Responsive Carousel (with Swipe)
Stars: ✭ 1,962 (+1409.23%)
Mutual labels:  mobile
Involt
Inject hardware interactions directly into HTML layout.
Stars: ✭ 128 (-1.54%)
Mutual labels:  mobile
Drozer Modules
Stars: ✭ 126 (-3.08%)
Mutual labels:  mobile

中文 README

F2Native is born for mobile visual development. It is out-of-the-box,cross-platform, high-performance visualization solution . Support Android and iOS perfect,moreover have high-performance experience in low-end mobile. Based on the grammar of graphics, F2Native provides all the chart types you'll need. Our mobile design guidelines enable better user experience in mobile visualzation projects.

Special thanks to Leland Wilkinson, the author of The Grammar Of Graphics, whose book served as the foundation for F2Native and F2.

Installation

iOS

Supports iOS 9.0+,Xcode 9.0+

  1. DownLoad all content of F2Native.
  2. Execute the following command to pull the associated submodule.
git submodule init
git submodule update 
  1. Add the project under the iOS folder in F2 to your project.
  2. import <F2/F2.h>

Android

  1. Build GCanvas
sh build_gcanvas_android.sh
  1. Build F2Native
./gradlew :android:f2native:assembleStandalone
  1. run Demo
./gradlew :android:sample:installStandaloneD

Features

Focus on the mobile,extreme experience

F2Native supports iOS and Android. Using the cross-platform language C++ to generate the underlying drawing commands, can achieve cross-platform, unified experience, high-performance experience.

Light and natural

make data more alive and chart interactions more natural.

All the chart types you want

With the power of grammar of graphics, F2Native including classical charts such as line, column/bar chart, pie chart. Additionally, F2 also provides feature-riched chart components to meet various needs.

Links

Demos

Chart Demos

Getting Started

iOS

#import <F2/F2.h>
@interface F2Demo : UIView
@property (nonatomic, strong) F2CanvasView *canvasView;
@end
@implementation  F2Demo
-(NSString *)jsonData {
    return @"[
      {\"genre\":\"Sports\",\"sold\":275},
      {\"genre\":\"Strategy\",\"sold\":115},
      {\"genre\":\"Action\",\"sold\":120},
      {\"genre\":\"Shooter\",\"sold\":350},
      {\"genre\":\"Other\",\"sold\":150}]";
}
-(void)drawGraph {
     // step1
     CGRect viewFrame = CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width, 280);;
     self.canvasView = [F2CanvasView canvasWithFrame:viewFrame];
     [self addSubview:self.canvasView];
     // step2
     F2Chart *chart = [F2Chart chart:canvas.view.bounds.size withName:@"f2chart"];
     // step3
     chart.canvas(self.canvasView).padding(20, 10, 20, 0.f).source([self jsonData]);
     // step4
     chart.interval().position(@"genre*sold");
     // step5
     chart.render();
}

Android

<com.antgroup.antv.f2.F2CanvasView
    android:id="@+id/canvasView"
    android:layout_width="match_parent"
    android:layout_height="220dp"/>
F2CanvasView canvasView = findViewById(R.id.canvasView);
canvasView.initCanvasContext(new F2CanvasView.ConfigBuilder().asyncRender(true).build());

canvasView.setAdapter(new F2CanvasView.Adapter() {
    private F2Chart mChart;
    @Override
    public void onCanvasDraw(F2CanvasView canvasView) {
       if (mChart == null) {
           mChart = F2Chart.create(canvasView.getContext(), "SingleLineChart_1", canvasView.getWidth(), canvasView.getHeight());
       }
       mChart.setCanvas(canvasView);
       mChart.padding(10, 0, 0, 0);
       mChart.source(Utils.loadAssetFile(canvasView.getContext(), "mockData_singleLineChart.json"));
       mChart.line().position("date*value");
       mChart.setScale("date", new F2Chart.ScaleConfigBuilder().tickCount(3));
       mChart.render(); 
    }

    @Override
    public void onDestroy() {
        if (mChart != null) {
            mChart.destroy();
        }
    }
});

How to Contribute

Please let us know how can we help. Do check out issues for bug reports or suggestions first.

To become a contributor, please follow our contributing guide.

License

MIT license

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].