DroidKaigi 2016 official Android conference app in Tokyo. https://play.google.com/store/apps/de…

Min SDK   16
Latest Commit   2016-12-23 13:32:32
License   Apache-2.0

Github   https://github.com/konifar/droidkaigi2016

         

使用APP客户端扫描二维码运行Demo


...

konifar
Quipper Limited
Tokyo Japan

http://konifar.hatenablog.com
I'll be back.

         

类似的还有....
Pedometer Lightweight pedometer app for Android using the hardware step sensor
Jager Unofficial client for Product Hunt with material design.
NightSight NightSight is a project that helps decreasing screen brightness below system's Lowest level.
README

README.md

DroidKaigi 2016 official Android app Circle CI Stories in Ready

DroidKaigi is a conference tailored for developers on 18th and 19th February 2016.

Try it on your device via DeployGate

Features

  • Show all sessions
  • Manage schedule
  • Show map
  • Search sessions and speakers

Development Environment

Java8 & retrolambda

This project uses Java8 and retrolambda. If you haven't set up Java8 yet, install it from here, and set env JAVA_HOME or JAVA8_HOME.

DataBinding

This project tries to use DataBinding.

<TextView
    android:id="@+id/txt_place"
    style="@style/Tag"
    android:layout_marginEnd="@dimen/spacing_xsmall"
    android:layout_marginRight="@dimen/spacing_xsmall"
    android:layout_marginTop="@dimen/spacing_xsmall"
    android:background="@drawable/tag_language"
    android:text="@{session.place.name}" /

Custom attributes are also used like below.

<ImageView
    android:id="@+id/img_speaker"
    android:layout_width="@dimen/user_image_small"
    android:layout_height="@dimen/user_image_small"
    android:layout_below="@id/tag_container"
    android:layout_marginTop="@dimen/spacing_small"
    android:contentDescription="@string/speaker"
    app:speakerImageUrl="@{session.speaker.imageUrl}" />

BindingAdapter like speakerImageUrl is written in DataBindingAttributeUtil.java.

@BindingAdapter("speakerImageUrl")
public static void setSpeakerImageUrl(ImageView imageView, @Nullable String imageUrl) {
    if (TextUtils.isEmpty(imageUrl)) {
        imageView.setImageDrawable(ContextCompat.getDrawable(imageView.getContext(), R.drawable.ic_speaker_placeholder));
    } else {
        Picasso.with(imageView.getContext())
                .load(imageUrl)
                .placeholder(R.drawable.ic_speaker_placeholder)
                .error(R.drawable.ic_speaker_placeholder)
                .transform(new CropCircleTransformation())
                .into(imageView);
    }
}

Dagger2

This project uses DI library Dagger2. See classes in di package.

src/main/java/io/github/droidkaigi/confsched/di
|
|--scope
|  |--ActivityScope.java
|  |--FragmentScope.java
|
|--ActivityComponent.java
|--ActivityModule.java
|--AppComponent.java
|--AppModule.java
|--FragmentComponent.java
|--FragmentModule.java

Orma

This project uses ORM library Android-Orma. Android-Orma is a lightning-fast and annotation based wrapper library of SQLiteDatabase.

Some model classes in model package have @Table annotation.

@Table
public class Session {
    @Column(indexed = true)
    @SerializedName("id")
    public int id;

    @Column(indexed = true)
    @SerializedName("title")
    public String title;

    // ...
}

These classes are saved in database via dao/SessionDao. To know more about Android-Orma, see document.

Todo

This project is under development. Issues are managed by GitHub Project. https://github.com/konifar/droidkaigi2016/projects/1

If you have a feature you want or find some bugs, please write an issue.

For speakers

If you want to change description of your session, feel free to send PullRequest