Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Yet Another Cross Platform Development

Yet Another Cross Platform Development

2015/08/26 関西モバイルアプリ研究会 #5 (Kyoto)

Sample: https://github.com/iseebi/J2ObjCSample

Nobuhiro Ito

August 26, 2015
Tweet

More Decks by Nobuhiro Ito

Other Decks in Programming

Transcript

  1. :FU"OPUIFS
    $SPTT1MBUGPSN%FWFMPQNFOU
    !JTFFCJ
    ؔ੢ϞόΠϧΞϓϦݚڀձ 8FE

    View Slide

  2. !JTFFCJ
    /PCVIJSP*UP
    'FOSJS*OD
    .PCJMF"QQMJDBUJPO&OHJOFFS
    IUUQJTFFCJIBUFOBCMPHDPN

    View Slide

  3. ຊ೔ൃച

    View Slide

  4. "OESPJEओମͷ
    ΫϩεϓϥοτϑΥʔϜ
    ωλ΍Γ·͢

    View Slide

  5. View Slide

  6. ͷ࿩͸͠·ͤΜ

    View Slide

  7. View Slide

  8. +0CK$
    w +BWBΛ0CKFDUJWF$ʹม׵͢Δɻ
    w +BWBΛ0CKFDUJWF$ʹม׵͢ΔίϚϯυͱɺ

    0CKFDUJWF$༻+3&ΤϛϡϨʔγϣϯϥΠϒϥϦͷ
    ηοτɻ
    w (PPHMF੡ɻ*OCPYͱ͔Ͱ࢖ΘΕ͍ͯΔɻ

    View Slide

  9. ͔͍ͭͲ͜Ζ
    w Ξϗ΄ͲෳࡶͳॲཧΛJ04"OESPJEͰ͋Θ͍ͤͨ
    w ͢Ͱʹ"OESPJE൛͕͋Δ
    w "1*·ΘΓ͕ผग़͠Ͱ͖Δײ͡ʹͳͬͯΔ
    w ΫϩεϓϥοτϑΥʔϜ։ൃ͍͚ͨ͠Ͳ

    ͕ۚͳ͍ɾਓ͕͍ͳ͍

    View Slide

  10. '3&&

    View Slide

  11. ͔͍͔ͭͨ
    w "OESPJEͱJ04ͷϓϩδΣΫτΛ

    ૬ରύεͰࢀরͰ͖ΔҐஔʹ഑ஔ
    w "OESPJEଆͰ(SBEMFʹ௥Ճ͢Δ Ξϊςʔγϣϯ

    w J04ଆͰ$PDPB1PETͰΠϯετʔϧ͢Δ

    ίϚϯυࠐΈͰ߱ͬͯ͘Δ

    w J04ଆʹม׵༻ͷλʔήοτΛ௥Ճ͢Δ

    View Slide

  12. ϓϩδΣΫτ഑ஔ

    View Slide

  13. "OESPJEଆϥΠϒϥϦ௥Ճ
    compile 'com.google.j2objc:j2objc-annotations:0.1'

    View Slide

  14. ίʔυॻ͘
    ม׵ॲཧର৅Λ
    ύοέʔδʹ͓ͯ͘͠
    Ϋϥε΍ϝιουʹ
    ม׵ޙͷ໊લΛ
    !0CKFDUJWF$/BNFͰ
    ࢦఆՄೳ

    View Slide

  15. $PDPB1PETΠϯετʔϧ
    platform :ios
    pod 'J2ObjC', :git => 'https://github.com/goodow/j2objc.git'
    ຊՈʹ͋Δ΋ͷ͸ݹ͍

    Ҏ߱Ͱͳ͍ͱ!0CKFDUJWF$/BNF͕Πέͯͳ͍

    View Slide

  16. "HHSFHBUFλʔήοτ௥Ճ

    View Slide

  17. CLASS_PATH=../android/app/src/main/java
    CONVERT_CODE_BASE_PATH=$CLASS_PATH/net/iseteki/j2objcsample/library
    OUTPUT_CODE_PATH=ConvertedCodes
    cd $SRCROOT
    find $CONVERT_CODE_BASE_PATH -not -name 'platform' -type d -print0 |\
    while IFS= read -r -d $'\0' line; do
    Pods/J2ObjC/dist/j2objc \
    --doc-comments \
    --no-package-directories \
    --strip-reflection \
    -use-arc \
    -sourcepath $CLASS_PATH \
    -d $OUTPUT_CODE_PATH $line/*.java
    done
    --doc-comments
    ɹˠ+BWB%PDΛม׵
    --no-package-directories
    ɹˠσΟϨΫτϦߏ੒Λϑϥοτʹ
    --strip-reflection
    ɹˠϦϑϨΫγϣϯ༻ͷίʔυΛੜ੒͠ͳ͍
    -use-arc
    ɹˠ"3$Λ࢖͏
    -sourcepath
    ɹˠιʔεશମͷύε
    -d
    ɹˠग़ྗઌ

    View Slide

  18. View Slide

  19. View Slide

  20. +0CK$ͷΠέͯͳ͍ͱ͜
    w ग़ͯ͘Δ0CKFDUJWF$ͷίʔυ͕ΘΓͱ࢒೦ɻ
    w -JTU5ͱ͔͕+BWB6UJM-JTUͱ͔Ͱग़ͯ͘Δ
    w த਎ݟͨΒෛ͚
    w 4XJGUϒϦοδ͠Α͏ͱͨ͠ΒखݩͰ͸͏·͍͔ͣ͘
    w 4XJGUͰ࢖͏ࣄྫ͸͋ΔΈ͍ͨͳΜ͚ͩͲʜ

    View Slide

  21. ΫϩεϓϥοτϑΥʔϜൺֱ
    9BNBSJO 3PCP7. +0CK$
    Α͍
    8JOEPXT΋ΧόʔՄೳ
    $FS͕͏Ε͍͠
    ࣮੷͋Δ
    9BNBSJO΄Ͳߴ͘ͳ͍
    ,PUMJO΋͍͚Δ
    ϝϞϦޮ཰ྑ͍
    ͓͔͔ۚΒͳ͍
    ม׵෦෼Ҏ֎͸௨ৗ։ൃՄ

    ਓతϦιʔε֬อ༰қ

    ࣮੷͋Δ *OCPY

    Α͘ͳ͍
    ༗ྉɾ݁ߏߴ͍
    ΤϯδχΞ֬อݫ͍͠ ʁ

    ߴ͘ͳ͍ʹ͠Ζ༗ྉ
    ࣮੷͕ඍົ
    +BWB
    ग़ͯ͘Δίʔυ͕ΞϨ

    View Slide

  22. ·ͱΊ
    w +0CK$͸ࠓͷͱ͜Ζݱ৔Ͱ࠷΋ಋೖ͠΍͍͢

    ΫϩεϓϥοτϑΥʔϜ։ൃٕज़ͩͱࢥ͏
    w ͓͔͔ۚΒͳ͍ɺ࣮੷͋ΔɺΤϯδχΞ֬อ༰қ
    w ग़ͯ͘ΔίʔυͷΩϞ͞ʹର͢Δ׮༰͕͞ඞཁɻ

    View Slide