2016/02/26 Kotlin Birthday Party #jkug
KotlinͰRetrofitΛ͍͘͢͢Δͪΐͬͱͨ͠2015/02/26Shinya Kumagai(@droibit)
View Slide
About Me• Shinya Kumagai (۽୩ ৻) 25ࡀ• Twitter, GitHub - @droibit• λΦιϑτΣΞגࣜձࣾ
Happy Birthday Kotlin!!(ɾ8ɾ)
֓ཁ• connpass API ༻ͷRetrofit ServiceΛର- JavaͰఆٛ͞ΕͨService- KotlinͰServiceΛఆٛKotlinͰ͏ͱ͖ͷͪΐͬͱͨ͠IUUQTRVBSFHJUIVCJPSFUSPpU
Connpass API• ݕࡧΫΤϦ- keyword … Ωʔϫʔυ- order … ݁Ռͷදࣔॱ (1:ߋ৽ॱ, 2…)- ymd … Πϕϯτ։࠵ (yyyymmdd)• ϨεϙϯεJSON?keyword=kotlin&order=1&ymd=20150226IUUQDPOOQBTTDPNBCPVUBQJ
JavaͰఆٛ͞ΕͨServicepublic interface ConnpassService {// ※ @Get, @Query লུResponse searchEvent(@NonNull String keyword,@Nullable Integer order,@Nullable String ymd);}// શΫΤϦΛࢦఆservice.searchEvent(“kotlin”, 1, "20160226");// ΩʔϫʔυͷΈͷ߹service.searchEvent("kotlin", null, null);
// ֦ுؔΛఆٛ + σϑΥϧτҾfun ConnpassService.searchEventExt(keyword: String,order: Order? = null,ymd: String? = null) = searchEvent(keyword, order?.index, ymd)// ݕࡧ݁Ռͷදࣔॱͷྻڍମenum class Order(val index: Int) {UPDATE(1), EVENT(2), NEW(3);override fun toString() = "$index"}// ΩʔϫʔυҎ֎ඞཁͳΫΤϦͷΈservice.searchEventExt("kotlin", order = Order.UPDATE)KotlinͰվળ
KotlinͰServiceΛఆٛinterface ConnpassService {// ※ @Get,@Query লུfun searchEvent(keyword: String,order: Order? = null,ymd: String? = null): Response}// ΩʔϫʔυҎ֎ඞཁͳΫΤϦͷΈservice.searchEvent(“kotlin”, order = Order.UPDATE)
// ༻్ʹ߹Θ֦ͤͨுؔΛఆٛfun ConnpassService.searchEvent(keyword: String,order: Order? = null,ymd: Date? = null) = searchEvent(keyword, order, format(ymd))// DateΛ yyyymmdd ϑΥʔϚοτͷStringʹมfun format(date: Date?): String? = …// ։࠵ʹDateΦϒδΣΫτΛࢦఆservice.searchEvent(“kotlin",ymd = dateFromTimesSquare)վળྫ
·ͱΊ• ൚༻తͳΠϯλʔϑΣʔεʹͳΔ͍͋ɺσϑΥϧτҾɺ֦ுؔͰγϯϓϧͳServicefabricͷΑ͏ʹͳΒͳ͍Α͏ʹؾΛ͚ͭ·͠ΐ͏
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠