เมื่อใช้PyObjCคุณสามารถใช้ Python เพื่อเขียนแอปพลิเคชัน Cocoa สำหรับ OS X ได้ฉันจะเขียนแอป iPhone ดั้งเดิมโดยใช้ Python ได้หรือไม่ถ้าเป็นเช่นนั้นจะทำอย่างไร
เมื่อใช้PyObjCคุณสามารถใช้ Python เพื่อเขียนแอปพลิเคชัน Cocoa สำหรับ OS X ได้ฉันจะเขียนแอป iPhone ดั้งเดิมโดยใช้ Python ได้หรือไม่ถ้าเป็นเช่นนั้นจะทำอย่างไร
คำตอบ:
ยังไม่มีในปัจจุบันภาษาเดียวที่สามารถเข้าถึง iPhone SDK ได้แก่ C / C ++, Objective C และ Swift
ไม่มีเหตุผลทางเทคนิคว่าทำไมสิ่งนี้ไม่สามารถเปลี่ยนแปลงได้ในอนาคต แต่ฉันจะไม่กลั้นหายใจเพราะสิ่งนี้เกิดขึ้นในระยะสั้น
ที่กล่าวว่า Objective-C และ Swift ไม่ได้น่ากลัวเกินไป ...
2559 แก้ไข
Javascript พร้อม NativeScript framework พร้อมใช้งานแล้ว
คุณสามารถใช้ PyObjC บน iPhone ได้เช่นกันเนื่องจากผลงานที่ยอดเยี่ยมของ Jay Freeman (saurik) ดูโปรแกรม iPhone ในหลาม
โปรดทราบว่าสิ่งนี้ต้องใช้ iPhone ที่เจลเบรคในขณะนี้
ดูเหมือนว่านี่เป็นสิ่งที่นักพัฒนาได้รับอนุญาตให้ทำ: ข้อตกลงสำหรับนักพัฒนาซอฟต์แวร์ iOS มีการเปลี่ยนแปลงเมื่อวานนี้และดูเหมือนว่าจะได้รับการแก้ไขในลักษณะที่ทำให้การฝังตัวแปลภาษา Python ในแอปพลิเคชันของคุณถูกกฎหมาย:
ส่วนที่ 3.3.2 - ล่าม
เก่า:
3.3.2 แอปพลิเคชันต้องไม่ติดตั้งหรือเรียกใช้โค้ดปฏิบัติการอื่น ๆ ด้วยวิธีการใด ๆ รวมถึง แต่ไม่ จำกัด เพียงการใช้สถาปัตยกรรมปลั๊กอินการเรียกเฟรมเวิร์กอื่น API อื่น ๆ หรืออย่างอื่น เว้นแต่จะได้รับการอนุมัติเป็นลายลักษณ์อักษรจาก Apple จะไม่มีการดาวน์โหลดหรือใช้โค้ดที่ตีความในแอปพลิเคชันยกเว้นโค้ดที่ตีความและเรียกใช้โดย Documented API ของ Apple และตัวแปลในตัว แม้ว่าจะได้รับความยินยอมเป็นลายลักษณ์อักษรล่วงหน้าจาก Apple แอปพลิเคชันอาจใช้โค้ดที่ตีความแบบฝังในลักษณะที่ จำกัด หากการใช้งานดังกล่าวเป็นเพียงการให้คุณสมบัติหรือฟังก์ชันเล็กน้อยที่สอดคล้องกับวัตถุประสงค์ของแอปพลิเคชันที่ตั้งใจและโฆษณา
ใหม่:
3.3.2 แอปพลิเคชันไม่สามารถดาวน์โหลดหรือติดตั้งโค้ดปฏิบัติการได้ รหัสที่ตีความสามารถใช้ได้เฉพาะในแอปพลิเคชันหากสคริปต์รหัสและตัวแปลทั้งหมดถูกบรรจุในแอปพลิเคชันและไม่ได้ดาวน์โหลด ข้อยกเว้นเพียงประการเดียวที่กล่าวมาคือสคริปต์และโค้ดที่ดาวน์โหลดและเรียกใช้โดย WebKit framework ในตัวของ Apple
ใช่คุณสามารถ. คุณเขียนโค้ดของคุณเป็น tinypy (ซึ่งเป็น Python ที่ จำกัด ) จากนั้นใช้ tinypy เพื่อแปลงเป็น C ++ และในที่สุดก็รวบรวมสิ่งนี้ด้วย XCode ลงในแอป iPhone ดั้งเดิม Phil Hassey ได้เผยแพร่เกมชื่อ Elephants! โดยใช้แนวทางนี้ นี่คือรายละเอียดเพิ่มเติม
http://www.philhassey.com/blog/2009/12/23/elephants-is-free-on-the-app-store/
ใช่ปัจจุบันคุณสามารถพัฒนาแอพสำหรับ iOS ใน Python ได้
: มีสองกรอบที่คุณอาจต้องการที่จะเช็คเอาท์มีKivyและPyMob
โปรดพิจารณาคำตอบของคำถามนี้ด้วยเนื่องจากคำถามเหล่านี้เป็นข้อมูลล่าสุดมากกว่าคำถามนี้
การอัปเดตข้อตกลงสำหรับนักพัฒนาซอฟต์แวร์ iOS หมายความว่าคุณสามารถใช้อะไรก็ได้ที่คุณต้องการตราบเท่าที่คุณปฏิบัติตามหลักเกณฑ์สำหรับนักพัฒนา ส่วน 3.3.1 ซึ่ง จำกัด สิ่งที่นักพัฒนาสามารถใช้สำหรับการพัฒนา iOS ได้ถูกลบออกทั้งหมด
ที่มา: http://daringfireball.net/2010/09/app_store_guidelines
Pythonistaมีคุณสมบัติส่งออกไปยัง Xcode ที่ให้คุณส่งออกสคริปต์ Python ของคุณเป็นโปรเจ็กต์ Xcode ที่สร้างแอพ iOS แบบสแตนด์อโลน
https://github.com/ColdGrub1384/Pytoก็น่าดูเช่นกัน
ข้อตกลง iPhone SDK ค่อนข้างคลุมเครือว่าคุณได้รับอนุญาตให้เรียกใช้ภาษาสคริปต์หรือไม่ (นอก Javascript ของ WebView) การอ่านของฉันคือมันใช้ได้ - ตราบใดที่ไม่มีการดาวน์โหลดสคริปต์ใด ๆ ที่คุณเรียกใช้จากเครือข่าย (ดังนั้นสคริปต์ที่ติดตั้งไว้ล่วงหน้าและที่ผู้ใช้แก้ไขดูเหมือนจะใช้ได้)
IANAL ฯลฯ เป็นต้น
อัปเดต 2019:
แม้ว่าการพัฒนา Python-iOS จะยังไม่บรรลุนิติภาวะและมีแนวโน้มที่จะป้องกันไม่ให้ (afaik) แอปของคุณมี UI ดั้งเดิมและฟังก์ชันที่สามารถทำได้ในภาษาการพัฒนาที่รองรับโดย Apple แต่ดูเหมือนว่า Apple จะอนุญาตให้ฝังล่าม Python ใน Native Swift / Obj-C แอพ
รองรับการนำเข้าไลบรารี Python และเรียกใช้สคริปต์ Python (แม้จะมีอาร์กิวเมนต์บรรทัดคำสั่งที่ให้มา) โดยตรงจากโค้ด Native Swift / Obj-C ของคุณ
บริษัท ของฉันกำลังรวมโครงสร้างพื้นฐานของเรา (เดิมเขียนด้วยภาษา Python) ในแอปพลิเคชัน iOS ดั้งเดิม! มันทำงานได้ดีมากและการสื่อสารระหว่างส่วนต่างๆสามารถทำได้อย่างง่ายดายผ่านรูปแบบไคลเอนต์เซิร์ฟเวอร์
นี่เป็นห้องสมุดที่ดีโดย Beeware ด้วยเทมเพลต cookiecutter ถ้าคุณต้องการที่จะลองและเรียกใช้สคริปต์หลามใน app iOS ของคุณ: https://github.com/beeware/Python-Apple-support/tree/3.6
ในทางเทคนิคตราบใดที่รหัสที่ตีความ ISN'T ไม่ดาวน์โหลด (ไม่รวม JavaScript) แอปอาจได้รับการอนุมัติ เฟรมเวิร์ก "Rhodes" ของ Rhom เนื่องจากทั้งล่ามและรหัสที่ตีความจะรวมอยู่ในแอปพลิเคชันขั้นสุดท้าย - Apple ไม่พบว่ามันไม่เหมาะสม
http://rhomobile.com/products/rhodes/
แม้หลังจากข่าวประชาสัมพันธ์ล่าสุดของ Apple - แอพโรดส์ (ทับทิมบนมือถือ) ยังคงใช้งานได้บนแอพสโตร์ ฉันคิดว่ามันยากที่จะเชื่อว่า tinyPy หรือ pyObjC จะไม่พบสถานที่หากมีชุมชนนักพัฒนาที่เต็มใจ
คุณสามารถทำได้ด้วย PyObjC ด้วยโทรศัพท์ที่เจลเบรคแน่นอน แต่ถ้าคุณต้องการนำไปไว้ใน App Store พวกเขาจะไม่อนุญาตเพราะมัน "แปลรหัส" อย่างไรก็ตามคุณอาจสามารถใช้Shed Skinได้แม้ว่าฉันจะไม่ทราบว่ามีใครทำเช่นนี้ก็ตาม ฉันไม่สามารถนึกถึงเหตุผลที่ดีในการทำเช่นนี้ได้เนื่องจากคุณสูญเสียการพิมพ์แบบไดนามิกและอาจใช้ ObjC ด้วยเช่นกัน
ภาษา "ภายนอก" ที่สำคัญเพียงภาษาเดียวสำหรับการพัฒนา iPhone ที่ฉันทราบด้วยการสนับสนุนกึ่งสำคัญในแง่ของเฟรมเวิร์กและความเข้ากันได้คือMonoTouchซึ่งเป็นสภาพแวดล้อม C # /. NET สำหรับการพัฒนาบน iPhone
ฉันคิดว่ามันเป็นไปไม่ได้ก่อนหน้านี้ แต่ฉันเพิ่งได้ยินเกี่ยวกับ PyMob ซึ่งดูน่าสนใจเพราะแอพเขียนด้วย Python และผลลัพธ์สุดท้ายเป็นซอร์สโค้ดดั้งเดิมในแพลตฟอร์มต่างๆ (Obj-C สำหรับ iOS, Java สำหรับ Android ฯลฯ ) นี่เป็นสิ่งที่ไม่เหมือนใครอย่างแน่นอน หน้าเว็บนี้อธิบายรายละเอียดเพิ่มเติม
ยังไม่ได้ถ่ายเลย แต่จะมาดูเร็ว ๆ นี้