Giter Club home page Giter Club logo

asphalt's Introduction

React Native Auckland Meetup 2021

๐Ÿ‘‹ Hi there! I'm Kevin, your front-end specialist from New Zealand!

๐Ÿš€ My Experience:

  • ๐Ÿ’ป React Native: I specialise in building cross-platform mobile apps with React Native. From ideation to deployment, I've got you covered.
  • โš›๏ธ React: Building responsive, user-friendly web applications with React is my jam. Let's create something amazing together!
  • ๐Ÿ“ฑ Android: I have a knack for crafting exceptional Android apps, whether it's a sleek user interface or a robust back end.
  • ๐Ÿ Python: Python is my go-to language for solving complex problems and automating tasks. I'm your Python pro!
  • ๐Ÿค– Machine Learning: I love diving into data and creating intelligent algorithms. If you need help with ML projects, I'm your ally!

๐Ÿ”ง Why Choose Me:

  • I'm dedicated to delivering high-quality work on time and within budget.
  • I'm a great communicator, and I love collaborating to turn your ideas into reality.
  • I'm constantly learning and adapting to new technologies to stay at the forefront of the industry.
  • I'm passionate about what I do, and your project's success is my top priority.

Let's team up to bring your projects to life!

Feel free to reach out, and let's start a conversation. ๐Ÿš€๐Ÿ“Š๐Ÿ“ฑ

Most Used Languages

Coffee Driven Development

asphalt's People

Contributors

akiwarheit avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

asphalt's Issues

Delegate work of matching field & view to an interface

Snippet as follows

    private void handle(K instance, View view, Field field) throws IllegalAccessException {
        if (view instanceof EditText && field.getType().equals(String.class)) {
            field.setAccessible(true);
            field.set(instance, ((EditText) view).getText().toString());
        }
    }

Changing initialization or binding code

    LinearForm<Person> linearForm = ((LinearForm<Person>) findViewById(R.id.linear_form));
    linearForm.bind(Person.class);
    Person user = linearForm.getObject();

If we can do away with bind() call since it's pretty redundant

Change the entire premise of the library

LOL

So the problem is I thought getDeclaredFields fields would be sorted in order of their declaration. This is true in JVM 1.6 but unfortunately, this is untrue for DVM; the order how these fields are returned is totally random.

So rather than having a linear matching & binding strategy, we should have a literal binding between a focusable view and it's properties.

@Form
public class Person {

    @Field(R.id.name_text_field)
    private String name;

    @Field(R.id.status_spinner)
    private Status status;

    @Field(R.id.gender_radio_group)
    private Gender gender;

    // Getters & Setters

    public enum Status {
        AVAILABLE, AWAY, BUSY
    }

    public enum Gender {
        MALE, FEMALE
    }

}

The @Field annotation can accept two parameters

public @interface Field {
    int viewId();
    Class<? extends Binder> binder default com.keeboi.asphalt.DefaultBinder.class;
}

Matching will be straightforward

for(Field field : getDeclaredFields()) {
    if (field.isAnnotationPresent(com.keeboi.asphalt.annotation.Field.class)) {
        // get annotation
        // instantiate the binder class bound to this field
        // call bind();
    }
}

Will have to check if feasible.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.