DroidKaigi 2016 official Android conference app in Tokyo.

Related tags

App droidkaigi2016
Overview

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 👍

You have to fix 3 json files below.

If you can write only English or Japanese, it is good to write same description in sessions_en.json and sessions_ja.json. And if you can translate to Arabic by using GoogleTranslate, please write Arabic description in sessions_ar.json.

Thanks! Enjoy together!

Libraries

This project uses some modern Android libraries.

License

Copyright 2016 Yusuke Konishi

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Added markers show conflicts of the sessions in My Schedule.

    Added markers show conflicts of the sessions in My Schedule.

    Implemented #101

    Changes:

    • Add a conflict tag on a CardView
    • Add some resources for conflict tags
    • Refresh contents of RecyclerView when the statuses of sessions are changed
    conflict_on_jp conflict_on_en
    opened by jmatsu 23
  • Refactoring and Update dependencies

    Refactoring and Update dependencies

    Refactor

    DroidKaigiClient.getSessions

    • if to switch.
      • It is easy to add languages.

    Update Dependencies

    gson 2.6.1

    https://github.com/google/gson/blob/master/CHANGELOG.md

    okhttp 3.1.2

    https://github.com/square/okhttp/blob/master/CHANGELOG.md

    threetenabp 1.0.3

    https://github.com/JakeWharton/ThreeTenABP/blob/master/CHANGELOG.md

    stetho 1.3.0

    https://github.com/facebook/stetho/blob/master/CHANGELOG.md

    improve 
    opened by gotokatsuya 14
  • Support Korean language

    Support Korean language

    Overview

    • Added Korean strings.xml
    • Added sessions_ko.json

    Why

    I knew one Korean Androider. His name is Pluu. He is translating Japanese session slide of DroidKaigi to Korean. http://pluu.github.io/tags/#DroidKaigi

    I was so impressed. Of course it is not required to support Korean language. But I want to support him. That's the reason.

    Note

    All Korean text is translated by Google translate. So it is not perfect, but in my opinion, Japanese <=> Korean auto translation is pretty good.

    Screen Shot

    untitled improve fun 
    opened by konifar 12
  • Improve about page layout

    Improve about page layout

    2016-02-13_17_34_49_png

    ref: SNS buttons in detail page layout. https://github.com/konifar/droidkaigi2016/blob/master/app/src/main/res/layout/view_speaker_sns_icons.xml#L36-L55

    if possible improve welcomecontribute 
    opened by konifar 12
  • Fix issue of don't keep activities

    Fix issue of don't keep activities

    Related issue

    #95

    Problem

    When I opened a detail screen of a talk and go back to the "All Sessions" screen with the back button, the app crashed and logged below stack trace.

    Cause

    Crash point is SessionsFragment.java#L175.

    SessionsFragment#onActivityResult() is unnecessary. FragmentActivity calls onActivityResult() of the child Fragment automatically. So, you should using the Fragment#startActivityForResult().

    Solution

    • 044e13c Initialize a fragment only when savedInstanceState of the Activity is null.
    • 965a857 Use Fragment#startActivityForResult(). I added the method for Fragment#startActivityForResult() to ActivityNavigator.
    • e8b3245 Remove unnecessary codes.

    Tests

    Verified the following:

    • [x] With "Don't keep activities" on, I opened a session detail and added it to my schedule and return back to the All Sessions to see the session was checked
    • [x] With "Don't keep activities" off, I opened a session detail and added it to my schedule and return back to the All Sessions to see the session was checked
    bug 
    opened by sys1yagi 11
  • Adds first UI tests for SessionDetailActivity using Espresso.

    Adds first UI tests for SessionDetailActivity using Espresso.

    The tests verify initial views are correctly rendered and external Intents are correctly thrown when clicking the Twitter/GitHub icons by launching the SessionDetailActivity on connected emulators or devices.

    Note that this is the first time for me to setup an emulator on CircleCI. I referred to this document on how to run an emulator on the CircleCI. If the pre-submit fails, let me play around the setup until the pre-submit becomes green.

    opened by thagikura 9
  • Fix IndexOutOfBoundsException when back to

    Fix IndexOutOfBoundsException when back to "All Sessions" screen

    Related issue

    #95

    Contents

    • [x] Check the size of the fragments and return null if it is out of bounds

    Regression tests

    Verified the following:

    • [x] With "Don't keep activities" on, I opened a session detail and added it to my schedule and return back to the All Sessions to see the session was checked
    • [x] With "Don't keep activities" off, I opened a session detail and added it to my schedule and return back to the All Sessions to see the session was checked

    Review on Reviewable

    opened by hkurokawa 9
  • Create a server program to accept session feedback request

    Create a server program to accept session feedback request

    This is a dependent of #32 Add feedback function.

    Create a server program which accepts a session feedback request like below:

    POST https://droidkaigi.jp/feedback
    
    {
      "sessionId": 1,
      "ratingValuability": 2,
      "ratingContents": 3,
      "ratingSpeaker": 3,
      "comment": "Good. But not best IMO."
    }
    

    Requirements

    • Can process ~50 req/sec
    • Average response time is less than 200 msec
    • Should be working for 4 days, from 18th Feb to 21th Feb
    • Data should be stored so that it can be summarised for each session later.
    • The size of comment is less than 1.2KB (400 characters in Japanese)
    priorityhigh 
    opened by hkurokawa 9
  • Introduce MVVM or MVP?

    Introduce MVVM or MVP?

    Overview

    Nowadays a bunch of Android developers are eager to discuss what kind of architecture we should adopt. I think this is the good timing to introduce MVVM or MVP to this app :D The diff will be so huge, hence it might be better to create new architecture branch and work on it. I have no strong opinion for MVP and MVVM...what do you think @konifar ?

    fun 
    opened by hotchemi 8
  • Add gradle-versions-plugin

    Add gradle-versions-plugin

    done

    • I have added gradle-versions-plugin. This allows all contributors to easily check whether the libraries this app depend on are all up-to-date :)
    • Remove short apk size comment (If anybody does not like this modification I can revert this 🙇 )

    memo

    Maybe in the near future we can integrate it to Circle CI and run the command and check the library updates regularly.

    http://www.slideshare.net/shinobuokano7/gradle-pluginci-62464447/19?src=clipshare

    Also, here is the result when I ran the command

    ./gradlew delendencyUpdates
    
    The following dependencies exceed the version found at the milestone revision level:
     - com.android.databinding:adapters [1.1 <- 1.0-rc3]
     - com.android.databinding:library [1.1 <- 1.0-rc3]
    
    The following dependencies have later milestone versions:
     - com.android.databinding:baseLibrary [2.1.2 -> 2.2.0-alpha3]
     - com.android.databinding:compiler [2.1.2 -> 2.2.0-alpha3]
     - com.android.support:animated-vector-drawable [23.2.0 -> 24.0.0-beta1]
     - com.android.support:appcompat-v7 [23.2.0 -> 24.0.0-beta1]
     - com.android.support:cardview-v7 [23.2.0 -> 24.0.0-beta1]
     - com.android.support:customtabs [23.2.0 -> 24.0.0-beta1]
     - com.android.support:design [23.2.0 -> 24.0.0-beta1]
     - com.android.support:recyclerview-v7 [23.2.0 -> 24.0.0-beta1]
     - com.android.support:support-annotations [23.2.0 -> 24.0.0-beta1]
     - com.android.support:support-v4 [23.2.0 -> 24.0.0-beta1]
     - com.android.support:support-vector-drawable [23.2.0 -> 24.0.0-beta1]
     - com.android.support.test:rules [0.4.1 -> 0.5]
     - com.android.support.test:runner [0.4.1 -> 0.5]
     - com.android.support.test.espresso:espresso-core [2.2.1 -> 2.2.2]
     - com.android.support.test.espresso:espresso-intents [2.2.1 -> 2.2.2]
     - com.facebook.stetho:stetho [1.3.0 -> 1.3.1]
     - com.github.gfx.android.orma:orma [2.3.2 -> 2.5.0]
     - com.github.gfx.android.orma:orma-processor [2.3.2 -> 2.5.0]
     - com.github.gfx.android.robolectricinstrumentation:robolectric-instrumentation [3.0.8 -> 3.1.0]
     - com.github.hotchemi:permissionsdispatcher [2.1.2 -> 2.1.3]
     - com.github.hotchemi:permissionsdispatcher-processor [2.1.2 -> 2.1.3]
     - com.github.jd-alexander:LikeButton [0.1.9 -> 0.2.0]
     - com.github.ozodrukh:CircularReveal [1.3.1 -> 2.0.1]
     - com.google.android.gms:play-services-analytics [8.4.0 -> 9.0.2]
     - com.google.android.gms:play-services-maps [8.4.0 -> 9.0.2]
     - com.google.code.gson:gson [2.6.1 -> 2.6.2]
     - com.google.dagger:dagger [2.2 -> 2.4]
     - com.google.dagger:dagger-compiler [2.2 -> 2.4]
     - javax.annotation:jsr250-api [1.0 -> 1.0-20050927.133100]
     - net.opacapp:multiline-collapsingtoolbar [1.0.0 -> 1.0.1]
     - org.mockito:mockito-all [1.10.19 -> 2.0.2-beta]
     - org.parceler:parceler [1.0.4 -> 1.1.5]
     - org.parceler:parceler-api [1.0.4 -> 1.1.5]
    
    opened by shoheikawano 8
  • Add contributors page

    Add contributors page

    Fix issue

    https://github.com/konifar/droidkaigi2016/issues/169

    UI

    Add ContributorsActivity .

    ( This is arabian language ) 2016-02-13 22 00 46

    Click

    Go to github user page.

    Database

    Add Contributor table.

    Column

    • avatar_url
      • github user profile image url.
    • html_url
      • github user page. ( Like a https://github.com/gotokatsuya
    • contributions
      • commit number.
    • name
      • github user name. Primary Key. This is not duplicated because github login name.

    Example

    2016-02-13 22 12 28 ## Other

    Sorry, I could not translate "Contributors" into Arabian.

    I try to use the GoogleTranslator.

    <string name="about_contributors">مساهم</string>
    
    opened by gotokatsuya 8
  • Remove release.keystore

    Remove release.keystore

    There is release.keystore in this repository. I guess it is better to add to .gitignore.

    It is not always necessary. Just I want to try :)

    http://qiita.com/tomoima525/items/dbeeb6d451304333b17d http://ja.ngs.io/2015/03/24/circleci-ios/

    improve 
    opened by konifar 0
  • Version code bug

    Version code bug

    Small bug hide inside version code in build.gradle :open_mouth: https://github.com/konifar/droidkaigi2016/blob/master/app/build.gradle#L35-L36

    Ref: https://twitter.com/ushi3_jp/status/704619982592675840

    bug 
    opened by konifar 0
  • Add rest of movie urls

    Add rest of movie urls

    https://github.com/konifar/droidkaigi2016/pull/333

    • [ ] 史上最速のAndroid
    • [ ] Androidの最新動向
    • [ ] What's the difference between JavaScript and Java?
    • [ ] Android CI: 2016 edition
    • [ ] 5年続く「はてなブックマーク」アプリを継続開発する技術
    • [ ] Fireside chat (Maybe nothing?)
    prepare data welcomecontribute 
    opened by konifar 6
Releases(1.1.4)
An unofficial Zerotier Android client patched from official client

An unofficial Zerotier Android client patched from official client

KAAAsS 819 Dec 29, 2022
The official repo for Blokada for Android and iOS.

Blokada 5 Blokada 5 is the next generation of the well known open source mobile ad blocker and privacy app. Want to try it out? Click here to download

Blokada (ad blocker) 2.8k Jan 7, 2023
Official Tehro client for Android.

Tehro Tehro is a public transport guide Android application powered by Kotlin & Jetpack Compose. Database The database used in the app is stored at te

YASAN 24 Dec 28, 2022
A semi-official port of the open source Anki spaced repetition flashcard system to Android

AnkiDroid A semi-official port of the open source Anki spaced repetition flashcard system to Android. Memorize anything with AnkiDroid! Features night

AnkiDroid 5.8k Dec 30, 2022
Matomo wrapper for React-Native. Supports Android and iOS. Fixed issues for native platforms build that are present in the official package.

@mccsoft/react-native-matomo Matomo wrapper for React-Native. Supports Android and iOS. Fixed issues for native platforms build that are present in th

MCC Soft 4 Dec 29, 2022
Learn about your favorite Marvel characters, super heroes, villains and watch videos from official Marvel youtube channel.

Marvel Super Heroes Android App ?? Learn about your favorite Marvel characters, super heroes, villains and watch videos from official Marvel youtube c

Lucas Cabral 5 May 24, 2022
Food Recipe App is an app for collecting most of food recipe in one app

Food Recipe App is an app for collecting most of food recipe in one app

Heba Elsaid 10 Dec 25, 2022
Arjun Naik 1 Apr 16, 2022
Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks

Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks

MindOrks 1.2k Dec 29, 2022
Android-basics-kotlin-tip-time-app - Tip Time app from Android Basics in Kotlin

Tip Time Tip Time app from Android Basics in Kotlin at developers.google.com. It

Ramon Lima e Meira 0 Jan 2, 2022
Environmental-Monitoring-Android-App - This Android App is used to monitor environmental parameters data from remote sensors

Environmental-Monitoring-Android-App - This Android App is used to monitor environmental parameters data from remote sensors. Parameters includes but not limited to temperature, humidity, air quality, level of Ionizing radiation, ...

Francisco Pascal Elias TAMBASAFIDY 0 Jan 4, 2022
Library to change Android launcher App Icon and App Name programmatically !

AppIconNameChanger Change Android App launcher Icon and App Name programmatically ! Download Demo APK from HERE Kindly use the following links to use

Prabhakar Thota 587 Dec 29, 2022
HideDroid is an Android app that allows the per-app anonymization of collected personal data according to a privacy level chosen by the user.

HideDroid An Android App for preserving user privacy HideDroid is an Android app that allows the per-app anonymization of collected personal data acco

null 100 Dec 12, 2022
Water tracker app helps you with daily reminder to drink water. This app is just a trial to test and improve my android development skills.

?? About Me I am a self-thaught developer learning web and android development. This app is just a trial to test and improve my android development sk

Sinan Sonmez (Chaush) 28 Dec 17, 2022
Visual Studio App Center Sample App for Android

Visual Studio App Center Sample App for Android The Android application in this repository and its corresponding tutorials will help you quickly and e

Yourhomeplan 1 Oct 13, 2021
Android app for Ribbit, Broker API Reference App

Ribbit Reference Implementation (Android) The reference implementation for designing the Android user interface of a broker-dealer trading application

Alpaca 12 Nov 24, 2022
Android-Java-App - Notepad app with user and password. SQL Lite

DVNote2 App Android-Java-App Notepad app with user and password Application made in Android Studio with Java language and SQLite database. How does it

DViga 1 Nov 6, 2021
Android Bitcoin market app base on Jetpack Compose and MVI. The app displays current bitcoin market price and history price k-line charts.

compose-bitcoin Android Bitcoin market app base on Jetpack Compose and MVVM & MVI. Features Current bitcoin market price. K-line charts of history pri

Chen Pan 3 May 20, 2022
App for lesson 8 of the Android App Development in Kotlin course on Udacity

Connect to the Internet - Mars Real Estate This is the toy app for Lesson 8 of t

Michael Pessoni 1 Dec 28, 2021